实体框架中的外键关系
本文关键字:关系 框架 实体 | 更新日期: 2023-09-27 18:05:07
我是实体框架的新手。我有两张桌子…
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?
如果我理解你的问题和你想做什么。我认为您应该将foreignkey属性添加到S7_ProductID属性中。
如下所示:
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);