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

可能重复:
什么是NHibernate?

我听说NHibernate的名字用了很多,但我真的不明白它是什么。 我已经阅读了维基百科的文章 ,但我不明白在我的C#应用​​程序(桌面w / WPF,web w / ASP.NET MVC)中使用NHibernate将如何:

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

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


更新:感谢您认定这是一个骗局! 我没有意识到这已经被问到了。

我想我的真正问题是关于NHibernate与Linq to SQL(我在我的所有应用程序中都使用过),但这已经在这里和这里被提出过 了 。

感谢大家! 🙂

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

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

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

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

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

NHibernate的主要目的也在维基百科文章中描述:

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

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

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