【问题标题】:Entity Framework inheritance and relationship实体框架继承和关系
【发布时间】:2018-09-07 10:49:32
【问题描述】:

我正在尝试为使用默认 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) 只有一列,并根据鉴别器列(由 EF 创建)中的记录内容,将外键分配给适当的实体?

【问题讨论】:

标签: c# entity-framework inheritance


【解决方案1】:

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

你不能。稍微考虑一下,我看不出有什么明显的原因无法实现该功能。它只是没有。

如果您希望 X 和 Y 共享一个属性,请从 XYEntity 类型和中间 XYEntity 类型派生它们,并为 ApplicationUser 提供一个 ICollection&lt;XYEntity&gt; 类型的单个导航属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 2011-05-19
    • 2010-10-07
    • 1970-01-01
    相关资源
    最近更新 更多