1、现在我想知道的是EF和NH是不是相似的数据库访问技术?
2、在什么情况下用EF,什么情况下用NH?
3、跟LinQ相比,两者的优势和劣势是什么?
我也期待各位大侠的见解。。。。!
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了。
非常感谢
Entity Framework就是为了取代LINQ to SQL,LINQ to SQL最大的问题就是只支持SQL Server数据库。
反对:大型项目采用EF,性能是一个问题.
至少4.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的轻便来实现。所以要相辅相成的使用。