如何使用以下关系为Entity Framework 5定义一组POCO类:
主要与Secondary.Data
的关系为1-1,主要与Tertiary.Data
的关系为1-1
---------(1)- Secondary.Data
Primary +
---------(1)- Tertiary.Data
这样Primary就有一个自动编号(sql server中的IDENTITY)主键(Primary.PrimaryID
)
并且每个子类主键也是主键的外键(例如,Secondary.Data.PrimaryID
既是主键,也是Primary.PrimaryID
的外键
Secondary
和Tertiary
表示SQL Server中的模式,并按名称空间在代码中表示。
答案 0 :(得分:3)
在Primary类中如下:
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int PrimaryID { get; set; }
public virtual Secondary SecondaryEntity { get; set; }
public virtual Tertiary TertiaryEntity { get; set; }
在其他两个课程中,您将为ID执行此操作:
[Key, ForeignKey("PrimaryEntity")]
public int PrimaryID { get; set; }
public virtual Primary PrimaryEntity { get; set; }
ForeignKey属性需要指向您在对象上拥有的虚拟属性的名称,在本例中为PrimaryEntity。
我希望这会有所帮助。
编辑:Per Ladislav对this question的回答,根据我们在聊天中讨论的内容,您需要确保您的二级和三级课程,但在不同的命名空间和模式中,有不同的班级名称。