【问题标题】:EF Database First with TPT Inheritance only creates DbSet<T> for base clases具有 TPT 继承的 EF Database First 仅为基类创建 DbSet<T>
【发布时间】:2014-04-09 20:22:30
【问题描述】:

我有一个 EF6.1 EDMX(数据库优先)模型,并且我对几种类型使用 TPT 继承(即员工:人员),但是,在生成的 Model.Context.cs 类中,我只有 DbSet&lt;T&gt; 类用于我的基类型,而不是继承的。是否需要(或可以)对 EDMX 模型或 T4 模板执行任何操作来为继承类生成 DbSet&lt;T&gt;

【问题讨论】:

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


    【解决方案1】:

    您可以通过以下方式从上下文中获取子类型

    context.People.OfType<Employee>()
    

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

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

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

    【讨论】:

    • 没有考虑实现部分类。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2014-12-18
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    相关资源
    最近更新 更多