2017-04-06 29 views
2

私はEntity Frameworkと流暢なAPIを使用して主キーとして外部キーを設定しようとしています。Entity Frameworkで外部キーを主キーとして設定するにはどうすればよいですか?

modelBuilder.Entity<Z>() 
      .HasRequired(m => m.X) 
      .WithRequireDependent(m => m.Y) 
      .WillCascadeOnDelete(); 

私のクラス:

public class Z 
{ 
     [Key,ForeignKey("X")] 
     [DatabaseGenerated(DatabaseGeneratedOption.None)] 
     public RentCar X { get; set; } 
     public DateTime AIA_KM { get; set; } 
     public DateTime AIA_FEC { get; set; } 
} 

私は前にこのStackOverflowの質問Entity Framework Foreign Key as Primary Key Code Firstをチェックするが、私のために動作しません。

ありがとうございます。

答えて

1

あなたZエンティティにRentCarのPKを追加し、次の設定を追加します

public class Z 
{ 
     public int RentCarId { get; set; }//Add this 

     public RentCar X { get; set; } 
     public DateTime AIA_KM { get; set; } 
     public DateTime AIA_FEC { get; set; } 
} 

そして、この設定を追加:このlinkから

modelBuilder.Entity<Z>().HasKey(t => t.RentCarId);// Add this 
modelBuilder.Entity<Z>() 
      .HasRequired(m => m.X) 
      .WithRequireDependent(m => m.Y) 
      .WillCascadeOnDelete(); 

を:

WithRequiredPrincipalを選択

あなたが存在するエンティティを作るでしょうプリンシパルの構成には、 リレーションシップの主キーが含まれています。 WithRequiredDependentを選択すると、エンティティ が依存関係を構成していることを意味します。つまり、関係の外部キーが になります。

だから、慣例により、あなたのPK依存エンティティ(Zは)私は前にこれを試してみましたが、私は新しいキーフィールドを取得しますが、私にはない1人の関係

+0

に1のFKになるだろうRentCar X列を取得します。どうもありがとうございます。 RentCar Xカラムがなければ、関係は失われませんか? –

+1

'X'はナビゲーションプロパティです。関係の終わりの表現のようなものです。テーブルの列として表されません。 – octavioccl

+0

こんにちは@ DavidJ.E。私の答えがあなたの質問を解決するのに役立つと思うなら、チェックマーク – octavioccl

関連する問題