我已将我的问题发布在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查询中。

07-27 22:43