首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NHibernate的优点和缺点是什么?

NHibernate的优点和缺点是什么?
EN

Stack Overflow用户
提问于 2009-11-11 21:33:15
回答 3查看 1.2K关注 0票数 3

对于一个新项目,我们正在考虑NHibernate。总的来说,我们非常喜欢它,但有一件事困扰着我们:它似乎非常消耗资源。显然,即使你只需要一个属性,NHibernate也会加载对象的所有属性。更重要的是,它将对子对象的属性执行相同的操作。

因此,我们正在权衡NHibernate的利弊。你会说它们是什么,如果好处弥补了坏处?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-11 21:55:12

Disadvantages:

  1. 它可能需要一段时间才能掌握编辑HBM文件的诀窍(尽管你可以使用Castle的ActiveRecord,它做会话管理,让我们来声明与属性的关系,它用来生成HBM,因为NH在AR之下。注意:你不必在城堡的AR中使用AR模式)。
  2. 它可能会运行更多的查询来检索一个特定的数据图表,而不是你手工编写的。
  3. 使用DB引擎的功能更加困难,因为NH对待起来就像一个哑巴记录存储
  4. 的支持不如其他方言好。

优势

  1. 您可以使用Linq- to -NH,并对所有支持的dialects.
  2. You使用linq样式的查询可以使用HQL而不是SQL
  3. 您可以通过配置文件中的几行代码来切换DB供应商
  4. 有一些工具可以为您生成您的架构。
  5. 支持实例的版本控制

<代码>G225

票数 2
EN

Stack Overflow用户

发布于 2009-11-11 21:44:30

优势:

表示你的数据的对象在SQL查询和避免SQL注入的第二级注入Caching

  • Creates

  • Lazy natively

  • Creates

  • 更容易。

  • DB转换(更改方言)

  • 框架得到了很好的支持,并且是Hibernate

的大量工具,可用于为Hibernate生成代码/映射文件

缺点:

  1. 可能比直接querying
  2. Object初始化慢比手动初始化慢
  3. 初始配置很麻烦在运行时检查
  4. 映射设置

可能很麻烦

这取决于你在做什么。Hibernate不是用于批量更新的工具。

票数 2
EN

Stack Overflow用户

发布于 2009-11-11 22:14:05

这里有一些还没有提到的东西(对不起,它不是正反格式的)。这些方法适用于这样的情况:您将创建一个通用框架来执行基本的实体操作(这样您就拥有了一个可重用的NHibernate库,可以用于其他项目)。

  • 设置它是一件非常痛苦的事情。
  • 考虑你将要开发的应用程序的类型(例如,web表单或WinForms),因为你在通用框架中使用的会话模型可能是不同的;或者,你可能想要开发一个能够插入你自己的会话管理实现的框架。这里有很多选择。
  • 如果有机会使用框架开发高度并发的应用程序,请从一开始就设计并发模型--以后可能很难让它正常工作。
  • 如果使用NHibernate.Mapping.Attributes库,则不必处理外部XML映射文件。您所要做的就是将元数据添加到数据对象类中。这真的很方便,直观,易于维护。

这就是我目前所知道的一切。如果我想到任何其他的东西,我会添加到我的列表中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1715189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档