.net 实体框架4.1对TPT和TPCT模型的更新?

.net 实体框架4.1对TPT和TPCT模型的更新?,.net,entity-framework,inheritance,entity-framework-4.1,table-per-type,.net,Entity Framework,Inheritance,Entity Framework 4.1,Table Per Type,我上次尝试实体框架是在4.0版。我在MSDN论坛和其他地方的一些帖子中证实了我的实验,结果表明,用于数据库到OOP映射的TPT(每种类型的表)和TPCT(每种具体类型的表)模型支持得非常差,甚至不完整。最糟糕的是,为TPT/TPCT查询生成的SQL完全是意大利式的,效率极低,以至于对于任何实际的类型层次结构,它都是不可用的 我的问题是,EF 4.1更新中是否有任何更改?具体而言: 现在是否有针对TPT和TPCT方法的适当设计支持 为TPT/TPCT查询/更新生成的SQL现在是否合理高效 关于这

我上次尝试实体框架是在4.0版。我在MSDN论坛和其他地方的一些帖子中证实了我的实验,结果表明,用于数据库到OOP映射的TPT(每种类型的表)和TPCT(每种具体类型的表)模型支持得非常差,甚至不完整。最糟糕的是,为TPT/TPCT查询生成的SQL完全是意大利式的,效率极低,以至于对于任何实际的类型层次结构,它都是不可用的

我的问题是,EF 4.1更新中是否有任何更改?具体而言:

  • 现在是否有针对TPT和TPCT方法的适当设计支持

  • 为TPT/TPCT查询/更新生成的SQL现在是否合理高效

  • 关于这些模型主题的任何其他信息


  • 答案是否定的。EF 4.1包含两个功能:

    • DbContext API
    • 代码优先支持
    代码优先支持根本不使用设计器—映射完全在代码中完成,它反映了设计器提供的功能。DbContext API是一种新的处理EF的奇特方法。它在某种程度上得到了简化,因此使用效果更好,但同时原始ObjectContext API中的一些功能丢失了

    您最感兴趣的是DbContext API只是ObjectContext API的包装器。没别的了。由于主System.Data.Entity.dll程序集未更改,因此核心EF功能绝对没有更改。使用EF 4.1+时,您仍然需要此程序集。您需要具有上述新功能的新EntityFramework.dll程序集。这意味着:

    • 设计师还是老样子。唯一的新特性是DbContext生成器T4模板
    • 生成的SQL完全相同

    谢谢您的回复。这很有趣,但当然也令人失望。您知道是否有计划至少修复TPT/TPCT的SQL生成?讨论这些问题的最后一篇文章是2010年8月发表的:如果您查看评论,您会发现人们对提出的“改进”不满意所以我相信在下一个主要版本中会有一些变化,但是现在还没有变化。谢谢Ladislav。这相当完整地回答了我的问题。:-)