【发布时间】:2019-04-23 20:50:50
【问题描述】:
我有两个类继承自同一个基类。以下是部分代码:
public abstract class baseclass
{
public virtual int? MyObjectID { get; set; }
public virtual Object MyObject { get; set; }
}
public class Derived1 :baseclass
{
}
public class Derived2 : baseclass
{
}
在为同一属性创建 3 列的数据库中: 我的对象 ID MyObject_ID MyObject_ID1
所以我无法向数据库发送值。它必须只有一列:MyObjectID 如何防止重复列?
【问题讨论】:
-
上面的代码和数据库有什么关系?您可以完全控制在其中添加哪些列。
-
另外,你有什么问题?
-
这是 codefirst 项目,我使用 EF。我必须防止数据库中的重复列
-
我怀疑这些列没有映射到同一个属性。我的猜测是“MyObjectID”映射到“MyObjectID”属性,“MyObject_ID”是导航属性“MyObject”的 FK(您没有指定要为此使用“MyObjectID”)和“MyObject_ID1 是鉴别器TPH 继承的列(虽然我不确定)。但是,请注意 Object MyObject 没有 int PK(除非它不是 System.Object),并且不能通过 EF 保存在没有 Key 的表中。
标签: c# entity-framework inheritance orm