首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Entity Framework 6.0版每个类型的表层次结构查询从派生类型中检索字段

Entity Framework 6.0版每个类型的表层次结构查询从派生类型中检索字段
EN

Stack Overflow用户
提问于 2016-08-03 03:59:11
回答 1查看 111关注 0票数 0

我正在使用EF Code First版本6.0构建一个招聘流程。我使用Table-per-Type实现了以下(高度简化的)继承层次结构:

代码语言:javascript
复制
[Table("Person")]
    public class Person
    {
        [Key]
        public int PersonId { get; set; }
        [StringLength(30)]
        public string FirstName { get; set; }
        [StringLength(30)]
        public string MiddleName { get; set; }
        [StringLength(30)]
        public string LastName { get; set; }
}

[Table("Applicants")]
    public class Applicant : Person
    {
        //Various Applicant properties
        [StringLength(256)]
        public string UserName { get; set; }
}

[Table("Employees")]
    public class Employee : Applicant
    {
        public DateTime HireDate { get; set; }
        [StringLength(20)]
        public string WorkPhone { get; set; }
        [StringLength(30)]
        public string JobTitle { get; set; }
//Various other Employee Properties
}

每当我在LINQPad中执行以下查询时:

代码语言:javascript
复制
Applicants.Where(x => x.UserName == "johndoe999")

查询返回与派生类Employee (HireDate、WorkPhone、JobTitle)关联的字段,这是我不希望看到的。我显然希望它省略与“Employee”相关的字段,而我所要求的都是申请者。每当我实现与每个层次结构的表相同的层次结构时,就不会发生这种情况。它应该给我提供与Table-per-type相同的行为,不是吗?要启用此行为,我还需要执行其他操作吗?

我看过一些关于这个问题的引用,比如(Entity Framework Table Per Type Performance),但是这是从11年来的,与一个更老的EF版本有关。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-03 05:11:25

显然,即使是在EF 6.1中也不支持这一点。我在codeplex上找到了以下工作项:

https://entityframework.codeplex.com/workitem/2332

这里有一篇文章的链接,解释了一种通过混合Dapper ORM和Entity Framework来解决的方法。根据作者的说法,性能会显着提高。

http://blog.falafel.com/how-to-improve-the-performance-of-tpt-inheritance-mapping-in-entity-framework/

这里是EF的github页面上关于EF7版本1.0的讨论,它实际上完全省略了TPT,但他们表示他们最终会把TPT放回EF7中。我只是浏览了一下这篇文章,但不清楚当他们将TPT添加到EF7中时,他们是否会解决TPT的性能问题,或者它是否会像6.1版本中一样工作。

我要么使用Dapper ORM,要么找到一种不同的方法来建模我的数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38729421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档