【发布时间】:2011-02-08 12:26:24
【问题描述】:
只是想知道是否有人使用过 Entity Framework 4 的 POCO 支持,以及与 NHibernate 相比它的表现如何。如果它们相同,我会非常有兴趣让 Entity Framework 4 成为我的 ORM 选择,因为它会:
- 支持数据优先和对象优先开发
- 拥有强大的 LINQ 提供程序
- 更容易向客户推销(因为它是由 Microsoft 开发的)
- 融入 .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