具有TPT继承的EF数据库优先只为基础链接创建DbSet <t> </t>

时间:2014-04-09 20:22:31

标签: entity-framework inheritance ef-database-first

我有一个EF6.1 EDMX(数据库优先)模型,我使用TPT继承几种类型(即Employee:Person),但是,在生成的Model.Context.cs类中我只有{{1}我的基类型的类,而不是继承类。是否需要(或可以)对EDMX模型或T4模板执行任何操作以为继承类生成DbSet<T>

1 个答案:

答案 0 :(得分:4)

您可以通过

从上下文中获取子类型
context.People.OfType<Employee>()

或者您可以通过部分类扩展上下文,在该部分类中定义子类型DbSets的属性:

partial class Context
{
    public DbSet<Employee> Employees { get; set; }
}

这比修改t4模板容易得多,因为标准t4模板可能会在将来的版本中更改,因此您必须再次修改它们。