【问题标题】:Entity Framework 4.1 updates to TPT and TPCT models?Entity Framework 4.1 对 TPT 和 TPCT 模型的更新?
【发布时间】:2011-09-04 11:16:43
【问题描述】:

我上次试用 Entity Framework 是在 4.0 版。我的实验得到了 MSDN 论坛和其他地方的一些帖子的证实,表明用于数据库到 OOP 映射的 TPT(每个类型的表)和 TPCT(每个具体类型的表)模型的支持非常差,并且确实不完整。最糟糕的是,为 TPT/TPCT 查询生成的 SQL 完全是意大利面条,非常效率低下,以至于对于任何现实的类型层次结构,它都无法使用。

我的问题是,EF 4.1 更新中有任何这些变化吗?具体来说:

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

  • 现在为 TPT/TPCT 查询/更新生成的 SQL 是否相当有效?

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

【问题讨论】:

    标签: .net entity-framework inheritance entity-framework-4.1 table-per-type


    【解决方案1】:

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

    • DbContext API
    • 代码优先支持

    代码优先支持根本不使用设计器 - 映射完全在代码中完成,它反映了设计器提供的功能。 DbContext API 是一种使用 EF 的新奇方式。它以某种方式被简化,因此使用更好,但同时缺少原始 ObjectContext API 的一些功能。

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

    • 设计师还是一样的。唯一的新功能是 DbContext Generator T4 模板
    • 生成的 SQL 完全一样

    【讨论】:

    • 感谢您的回复。这很有趣,但当然也令人失望。你知道是否有计划至少修复 TPT/TPCT 的 SQL 生成?
    • 上一篇讨论这些问题的文章是 2010 年 8 月:blogs.msdn.com/b/adonet/archive/2010/08/17/… 如果你查看 cmets,你会发现人们对提出的“改进”并不满意,所以我相信会有一些变化下一个主要版本,但尚未提出任何更改。
    • 谢谢拉迪斯拉夫。这非常完整地回答了我的查询。 :-)
    猜你喜欢
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多