2011-08-11 13 views
1

エンティティフレームワークを初めて使用しています。私は2つのテーブル...Entity Frameworkにおける外部キーの関係

public class S7_Baskets 
{ 
    [Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)] 
    [Column(Order = 0)] 
    public string S7_BasketID { get; set; } 
    [Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)] 
    [Column(Order = 1)] 
    public int S7_Seqno { get; set; } 
    public int S7_ProductID { get; set; } 

    public virtual S2_Products S2_Product { get; set; } 

} 

public class S2_Products 
{ 
    [Key] 
    public int S2_ProductID { get; set; } 
    public string S2_Desc { get; set; } 
} 

S7_ProductIDがS2_ProductIDを参照してくださいがありますか?

+0

これは質問であります純粋にEntity Frameworkのコードファーストに関するものです。 MVC3とはまったく関係がありません。あなたがMVC3プロジェクトでそれを使用しているという事実は無関係です。 –

+0

私は変更します – Beginner

+0

私はそれがエンティティで定義した仮想プロパティが行うものだと思います。 – Novice

答えて

1

私はあなたの質問とあなたが何をすべきか理解しています。私はあなたがS7_ProductIDプロパティにForiegnKey属性を追加したいと思います。

ここに示されているように:

public class S7_Baskets 
{ 
    [Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)] 
    [Column(Order = 0)] 
    public string S7_BasketID { get; set; } 

    [Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)] 
    [Column(Order = 1)] 
    public int S7_Seqno { get; set; } 

    [ForeignKey("S2_Products")] 
    public int S7_ProductID { get; set; } 
    public virtual S2_Products S2_Product { get; set; } 

}

をあなたはまた、モデルのOnModelChange方法では、次のようなものを追加する必要があります

modelBuilder.Entity<S7_Baskets>() 
      .HasRequired(t => t.S2_Products) 
      .WithMany() 
      .HasForeignKey(t => t.S7_ProductID).WillCascadeOnDelete(false); 
+0

ありがとうございました[ForeignKey( "S2_Product")] [ForeignKey( "S2_Products")]いいえ '私はそれが働いたと思います! – Beginner

+0

エンティティ名ではなくプロパティ名と一致するように、属性を[ForiegnKey( "S2_Product")]に変更してみてください。 –

+0

私は私のところに入っているので、最後のコメントは見ませんでした。 –

関連する問題