2010-10-11 107 views
8

可能重复:
What is NHibernate?什么是NHibernate,为什么我应该使用它?

我听到这个名字NHibernate用了不少,但我真的不知道它是什么。我已经read the Wikipedia article,但如何在我的C#应用​​程序使用NHibernate(桌面W/WPF,卷纸W/ASP.NET MVC)我不明白会:

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

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


UPDATE:感谢识别这是一个傻瓜!我没有意识到这已经被问到。我想我的真正的问题是关于NHibernate与Linq to SQL(我一直在使用我的所有应用程序),但已被问到herehere

谢谢大家! :)

+0

你可以看看LINQ2SQL第一,得到的ORM可以多么容易使事情的想法,然后看看NHibernate的后面,它提供了比LINQ2SQL更为企业级的ORM。 – 2010-10-11 23:04:37

+0

或http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework – pm100 2010-10-11 23:05:51

+0

哎呀,没有意识到这是一种欺骗。抱歉! – 2010-10-12 17:36:47

回答

13

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

为什么你需要它?因为它可以帮你避免编写大量繁琐的ADO.NET代码。从本质上讲,它在开发CRUD应用程序时增强了开发人员的生产力,也就是说,主要目的是创建,读取,更新和删除数据库中的数据的应用程序。

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

如果你想要一个ORM的效率,而不会引入这种依赖关系,认为实体框架,或LINQ2SQL(请注意,LINQ2SQL锁定你到SQL Server)。

最后,如果你不需要一个ORM的提高生产力,并且要绝对控制,坚持老式ADO.NET。

+0

知道OP当前如何与数据库一起工作会很有趣。即使使用ADO.NET,他也没有做过多少改变,这可以解释为什么他不会为此而哭泣。 = P – rebelliard 2010-10-12 01:02:02

3

的NHibernate的主要目的在Wikipedia article,以及被描述:

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

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

1

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

相关问题