【问题标题】:How is Entity Framework 4's POCO support compared to NHibernate?Entity Framework 4 的 POCO 支持与 NHibernate 相比如何?
【发布时间】:2011-02-08 12:26:24
【问题描述】:

只是想知道是否有人使用过 Entity Framework 4 的 POCO 支持,以及与 NHibernate 相比它的表现如何。如果它们相同,我会非常有兴趣让 Entity Framework 4 成为我的 ORM 选择,因为它会:

  1. 支持数据优先和对象优先开发
  2. 拥有强大的 LINQ 提供程序
  3. 更容易向客户推销(因为它是由 Microsoft 开发的)
  4. 融入 .NET 框架,无需 8 个 dll 即可启动和运行

也就是说,EF4有什么大的缺点吗?

它是否支持 NHibernate 支持的所有基本功能(延迟加载、急切加载、一级缓存等),还是边缘仍然粗糙?设置映射的语法是否像 NHibernate 和/或 Fluent NHibernate 一样简单?

编辑:请不要提出不信任投票。那是很久以前的事了,它解决了 EF1 的一些严重缺陷,这些缺陷似乎不再适用于 EF4。

【问题讨论】:

  • 据我所知,NHibernate支持数据优先开发。另一方面,部分客户采用VS2010/.NET 4可能还需要一段时间。
  • 从技术上讲,是的。 NHibernate 支持数据优先开发,因为它不会主动禁止您这样做。但是,很明显 NHibernate 建议的路径是进行代码优先开发,而 EF4 似乎对这两种方法给予同等重视。例如,EF4 可以采用现有的遗留数据库并快速生成用于数据访问的类。使用 NHibernate,您必须手动完成这一切,这非常耗时。
  • 你说的这8个dll是什么?它只有 4 个左右 :) 并且您只需要引用 2 个 em...NH 和我认为的字节码提供程序...
  • NHibernate 有一大堆代码生成器,所以我不知道为什么你不会用 NHibernate 做你用实体框架做的同样的事情。 stackoverflow.com/questions/41752/nhibernate-generators

标签: nhibernate entity-framework orm


【解决方案1】:

看起来 Ayende 有一个非常详细的blog post 比较两者,尽管他承认这不是一个彻底的逐点细分(这正是我在这里所希望的)。

总的来说,我认为他提出的支持 NHibernate 的观点是有效的,尽管有点“很高兴”。如果这确实是 EF4 目前缺乏的地方,那么听起来 EF4 是 NHibernate 的一个很好的替代品,如果只是出于我在原始问题中列出的原因。

【讨论】:

    猜你喜欢
    • 2012-08-23
    • 2011-07-26
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 2011-02-07
    • 2011-07-13
    • 2011-07-19
    相关资源
    最近更新 更多