【发布时间】:2015-07-29 23:39:23
【问题描述】:
我首先编写代码,因为我的许多 POCO 对象共享一些属性,所以我决定设置继承。这是我的两个数据对象
public abstract class BaseDataObject
{
[Key]
public Guid Id {get; set;}
public string Name {get; set;}
}
public class DataObject1: BaseDataObject
{
public string SomeProperty {get; set;}
}
public class DataObject2: BaseDataObject
{
public string OtherProperty {get; set;}
}
现在,如果 EF 生成我的表,它将创建两个具有以下属性的表
数据对象1 ID(唯一标识符,PK) SomeProperty (nvarchar(max)) 名称 (nvarchar(max))
数据对象2 ID(唯一标识符,PK) 其他属性 (nvarchar(max)) 名称 (nvarchar(max))
所以它把键放在第一位.. 但是我的 BaseDataObject 的另一个属性是在最后添加的。我宁愿在 Id 之后立即拥有这些属性。所以首先是 BaseDataObject 的属性,然后是派生对象的属性。
有没有办法告诉 EF 在生成我的表时这样做?我知道这只是化妆品,但仍然......如果有人直接查看数据库,那么最后拥有这些“基本属性”似乎相当混乱。
谢谢。
【问题讨论】:
-
你使用迁移吗?
标签: entity-framework inheritance ef-code-first