使用NHibernate有哪些优点/缺点? 应该使用NHibernate构建(并且不应该)构建哪种应用程序?
答案 0 :(得分:12)
由于其他人已经列出了优势,我将列出缺点
缺点
答案 1 :(得分:5)
优点:
缺点:
已经提到过学习曲线。您可以非常快速地开始使用NHibernate,但掌握它需要几个月的时间。我非常推荐阅读Manning NHibernate的书。
编写XML映射可能非常繁琐,特别是对于拥有数百个表和视图以及存储过程的大型数据库。是的,有一些工具可以帮助您生成这些映射,但是您仍然需要在那里进行大量的手工操作。 Fluent NHibernate似乎通过去除XML映射来简化这个过程,Castle ActiveRecord也是如此(虽然AR在模型类的属性中定义映射时不可能用于贫血域。)
某些风景可能性能低下。例如大型批量操作。对于那些你可能不得不使用IStatelessSession但其尴尬经验的人,最不用说......
答案 2 :(得分:3)
答案 3 :(得分:1)
优点:
缺点:
您应该将它用于的应用程序:
答案 4 :(得分:0)
高级答案是NHibernate本身就属于一个类,并且没有近乎竞争。
如果你需要从.NET应用程序对数据库进行CRUD,你应该使用NHibernate,至少有两个原因:
1)您获得Linq支持(需要类似ORM的东西)
2)NHibernate非常成熟
没有明显的缺点。还有其他选择,但其他选择有明显的缺点。
我刚才写了一些关于此的内容:
答案 5 :(得分:0)
缺点:NHibernate不是微软的产品,因此会面临一些没有听说过它的同事的阻力。特别是FOSS偏执狂。配置映射文件和延迟/急切加载行为可能非常耗时。如果您的数据库具有奇怪的命名约定,非典型设计或非常严格的性能要求,则可能需要比预期更多的工作。
我说了很多,但ActiveRecord是NHibernate的一个很好的层。它使用属性将数据点映射到类本身的类成员。人们没有充分利用这件事。