实体框架的继承和关系

时间:2018-09-07 10:49:33

标签: c# entity-framework inheritance

我正在尝试为使用默认TPH继承的实体实现一对多关系

public abstract class base
{
        public int Id { get; set; }
        ...
}

public class X : base
{
        public ApplicationUser User { get; set; }
       ...
}

public class Y : base
{
        public ApplicationUser User { get; set; }
       ...
}

public class ApplicationUser
{
        public string Name { get; set;}
       ...
        public ICollection<X> classX { get; set; }
        public ICollection<Y> classY { get; set; }
}

一切正常,但问题是实体框架在基表中创建了两列-User_Id和User_Id1。我如何映射它,以便外键(User_Id)只有一列,并且根据Discriminator列(由EF创建)中记录的内容,外键将分配给适当的实体?

1 个答案:

答案 0 :(得分:0)

  

如何映射它,以便外键(User_Id)只有一列,并且根据Discriminator列(由EF创建)中记录的内容,外键将分配给适当的实体?

不能。对此进行一点思考,我看不出无法实现该功能的任何明显原因。只是没有。

如果希望X和Y共享属性,请从XYEntity类型和中间XYEntity类型派生它们,并为ApplicationUser提供类型为ICollection<XYEntity>的单个Navigation属性。