什么是NHibernate,我为什么要使用它?

时间:2010-10-11 21:52:47

标签: c# .net nhibernate orm

  

可能重复:
  What is NHibernate?

我听说名字NHibernate使用了很多,但我真的不明白它是什么。我read the Wikipedia article,但我不明白在我的C#应用​​程序(桌面w / WPF,web w / ASP.NET MVC)中使用NHibernate将如何:

  • 更改代码
  • 更容易/更快

我应该在项目中使用NHibernate吗?


更新:感谢您将此视为傻瓜!我没有意识到这已经被问过了。

我想我真正的问题是关于NHibernate与Linq to SQL(我在所有应用程序中都使用过),但已经问过herehere

谢谢大家! :)

3 个答案:

答案 0 :(得分:19)

NHibernate是一个ORM(对象关系映射器)。其目的是将OO应用程序中的对象映射到数据库中的表以保持持久性。

你为什么需要它?因为它可以帮助您免于编写大量繁琐的ADO.NET代码。本质上,它在开发CRUD应用程序时提高了开发人员的工作效率,即主要用于在数据库中创建,读取,更新和删除数据的应用程序。

NHibernate是开源的,您需要意识到您的应用程序依赖于第三方库,其长期目标可能与您的不同。

如果您希望在不引入此依赖关系的情况下提高ORM的效率,请考虑实体框架或Linq2SQL(注意Linq2SQL会将您锁定到SQL Server中)。

最后,如果你不需要ORM的生产力增强,并且你想要绝对控制,那就坚持使用普通的旧ADO.NET。

答案 1 :(得分:3)

NHibernate的主要目的也在Wikipedia article中描述:

  

NHibernate的主要功能是从.NET类映射到数据库表(以及从CLR数据类型到SQL数据类型)。 NHibernate还提供数据查询和检索功能。

     

NHibernate生成SQL命令,使开发人员免受手动数据集处理和对象转换的影响,使应用程序可以移植到大多数SQL数据库,并且数据库可移植性的性能开销很小。

答案 2 :(得分:1)

NHibernate使您无需重新发明轮子。您选择文件新项目的90%时间将成为具有数据库后端的CRUD(创建,读取,更新和删除)项目。 NHibernate为您做了很多工作,希望能够消除为每个项目编写新数据访问层的繁琐工作。如果你写一个数据库,我会说是的,你应该看看NHibernate,但那里有很多ORMS。我说试试吧。