【发布时间】:2016-11-08 16:08:12
【问题描述】:
如果我从模型类继承我的业务类(模型类映射到数据库表上),如何避免在数据库中创建一个列作为“鉴别器”。
因为,目前,如果我将我的业务类(例如 Specifications)继承到现有模型类(即 DataSpecific ),它会要求首先迁移代码。在迁移中,我可以将鉴别器视为新列。我真的不想要这个。因为,原始模型类正在整个应用程序中使用,并且该代码运行良好。
如何停止创建“描述符”列
C#代码:
模型类
public class DataSpecific
{
}
商务舱
public class Specific
{
}
因此我可以在迁移中看到以下代码
AddColumn("dbo.Consignments", "Discriminator", c => c.String(nullable: false, maxLength: 128));
我怎样才能避免这种情况?
【问题讨论】:
-
那是因为您使用的是 TPH(每个层次结构的表)。选择 TPT 或 TPC,您将避免使用
Discriminator列。见asp.net/mvc/overview/getting-started/… -
有什么流畅的api命令或者方式可以指导实体框架使用TPT还是TPC?
-
是的。那将是
ToTable("...")。见weblogs.asp.net/manavi/…
标签: c# entity-framework