首页 新闻 搜索 专区 学院

Entity Framework和NHibernate的区别是什么?

1
悬赏园豆:10 [已解决问题] 解决于 2012-07-01 15:23

1、现在我想知道的是EF和NH是不是相似的数据库访问技术?
2、在什么情况下用EF,什么情况下用NH?
3、跟LinQ相比,两者的优势和劣势是什么?

陈哈哈的主页 陈哈哈 | 初学一级 | 园豆:160
提问于:2012-06-25 18:07
< >
分享
最佳答案
1

这里有两篇Entity Framework和NHibernate比较的文章:

NHibernate和Entity Framework 4.0优劣势争论

比较NHibernate和Entity Framework

收获园豆:10
dudu | 高人七级 |园豆:39035 | 2012-06-26 10:07
其他回答(4)
0

我也期待各位大侠的见解。。。。!

Angkor--:-- | 园豆:1086 (小虾三级) | 2012-06-25 18:15
3

EF和NH都是一种ORM技术。就是对象关系模型映射。NH没使用过。早起的NH和早期的EF一样都是通过XML文件定义映射,但后期的EF支持CODEFIRST技术,更先进更好用。

至于什么时候使用EF和NH,纯粹看个人喜好。在早期,EF没出来的时候,NH很受欢迎,如果你要维护早期的代码,就可能不可避免的要接触NH,另外,EF是.NET的产物(我不知道别的是否也有),但NH在.NET中却是舶来品。如果现在开发.NET应用,一般来说,使用NH的已经很少了。

LINQ是一种查询语言,没办法跟EF和NH相比,因为他们不同类。不过,你问的应该是LINQ TO SQL吧?如果是后者。。。那么,LINQ要比EF上手简单,功能也比较全面(比如对函数和过程的支持),却没EF灵活。一般来说,大型项目或者某些所谓的高手会考虑使用EF,而小型项目又对EF不熟悉的话,当然选择LINQ TO SQL了。

无之无 | 园豆:5085 (大侠五级) | 2012-06-25 22:54

非常感谢

支持(0) 反对(0) 陈哈哈 | 园豆:160 (初学一级) | 2012-06-26 07:49

Entity Framework就是为了取代LINQ to SQL,LINQ to SQL最大的问题就是只支持SQL Server数据库。

支持(1) 反对(1) dudu | 园豆:39035 (高人七级) | 2012-06-26 10:09
0

反对:大型项目采用EF,性能是一个问题.

【秦时明月】 | 园豆:803 (小虾三级) | 2012-06-26 08:26

至少4.0是这样

支持(0) 反对(0) 【秦时明月】 | 园豆:803 (小虾三级) | 2012-06-26 08:26

能否就两者做一个比较详细的比较?

支持(0) 反对(0) 陈哈哈 | 园豆:160 (初学一级) | 2012-06-26 08:27
0

都是ORM编程,区别赞NHibernate 是从 Java的Hibernate照搬过来的,而且Entity Framework是微软自行开发,结合了NHibernate中的优点及Linq的强大优势。Entity Framework 4.1已经进行了非常大的改善,4.3更是在性能上做了大的改过。5.0beta版也已经发布。可以看得出来微软对Entity Framework 的重视。中型项目用Entity Framework还是很不错的选择,但也要结合使用sql ,存储过程,因为有些复杂业务用Linq to entity来实现比较麻烦,这时候就中以利用sql的轻便来实现。所以要相辅相成的使用。

jerry-Tom | 园豆:4077 (老鸟四级) | 2012-06-26 10:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册