我正在尝试为使用默认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创建)中记录的内容,外键将分配给适当的实体?
答案 0 :(得分:0)
如何映射它,以便外键(User_Id)只有一列,并且根据Discriminator列(由EF创建)中记录的内容,外键将分配给适当的实体?
不能。对此进行一点思考,我看不出无法实现该功能的任何明显原因。只是没有。
如果希望X和Y共享属性,请从XYEntity类型和中间XYEntity类型派生它们,并为ApplicationUser提供类型为ICollection<XYEntity>
的单个Navigation属性。