我如何使用EF-5代码优先定义1-1关系

时间:2012-12-21 22:46:08

标签: c# vb.net theory entity-framework-5

如何使用以下关系为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的外键

修改

SecondaryTertiary表示SQL Server中的模式,并按名称空间在代码中表示。

1 个答案:

答案 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的回答,根据我们在聊天中讨论的内容,您需要确保您的二级和三级课程,但在不同的命名空间和模式中,有不同的班级名称。