实体框架4';s的POCO支持与NHibernate相比?
只是想知道是否有人有过使用EntityFramework4的POCO支持的经验,以及它与NHibernate相比有何优势。如果它们是相同的,我会非常有兴趣选择Entity Framework 4作为我的ORM,因为它会:实体框架4';s的POCO支持与NHibernate相比?,nhibernate,entity-framework,orm,Nhibernate,Entity Framework,Orm,只是想知道是否有人有过使用EntityFramework4的POCO支持的经验,以及它与NHibernate相比有何优势。如果它们是相同的,我会非常有兴趣选择Entity Framework 4作为我的ORM,因为它会: 支持数据优先和对象优先的开发 拥有强大的LINQ提供程序 更容易向客户推销(因为它是由Microsoft开发的) 进入.NET框架,而不需要8个DLL来启动和运行 换句话说,EF4有什么主要缺点吗? 它是否支持NHibernate支持的所有基本功能(延迟加载、快速加载、一级缓存
编辑:请不要提出不信任投票。这是很久以前的事了,它解决了EF1的一些严重缺陷,这些缺陷似乎已经不再适用于EF4了。看起来Ayende对这两者进行了非常详细的比较,尽管他承认这不是一个彻底的逐点细分(这正是我在这里所希望的)
总的来说,我认为他提出的支持NHibernate的观点是正确的,尽管有点“很好”。如果这确实是EF4目前缺乏的地方,那么就我在原始问题中列出的原因而言,EF4似乎是NHibernate的一个很好的替代品。据我所知,NHibernate支持数据优先开发。另一方面,一些客户机采用VS2010/.NET4可能需要一段时间。NHibernate支持数据优先开发,因为它不会主动禁止您这样做。然而,很明显,NHibernate建议的路径是代码优先开发,而EF4似乎对这两种方法给予同等的重视。例如,EF4可以获取现有的遗留数据库并快速生成用于数据访问的类。有了NHibernate,你必须手工操作,这是非常耗时的。你说的这8个DLL是什么?它只像4个左右:)你只需要引用em中的2个…NH和字节码提供程序,我认为…NHibernate有一大堆代码生成器,所以我不确定为什么你不会对NHibernate做与实体框架相同的事情。