我已将我的问题发布在Codeplex http://entityframework.codeplex.com/workitem/2087上。
这里也有一些问题,但是没有成功回答。
看到
Mapping TPT in EF Code First 4.1 w/ Different Primary Keys
Entity Framework 4 - TPT Inheritance in Features CTP5 (code first): rename foreign key column on inherited table
How can I use TPT inheritance models when primary keys have different names?
现在在使用TPT时是否可以为主键使用不同的列名?
可能与6.1.0
最佳答案
在TPT中,您基本上不想在子类中声明键,否则您将错过这一点。
如果必须使用其他ID名称,只需在子类中将代理属性映射到基本ID。
public class BaseEntity
{
public int Id { get; set; }
}
public abstract class SubEntity : BaseEntity
{
public BaseId
{
get => Id;
set => Id = value;
}
}
考虑将子字段标记为
NotMapped
,以防万一您不应该将它们包括在LINQ查询中。