Nhibernate 与其他 ORM 的区别是啥?

Posted

技术标签:

【中文标题】Nhibernate 与其他 ORM 的区别是啥?【英文标题】:What differentiates Nhibernate from other ORM’s?Nhibernate 与其他 ORM 的区别是什么? 【发布时间】:2009-03-18 15:39:45 【问题描述】:

除了开源和成熟之外,nhibernate 与其他 .net ORM 框架(如 Subsonic ADO.NET 实体框架 等?

更好地说,我为什么要选择 nhibernate 而不是其他 .net 实体框架?

【问题讨论】:

【参考方案1】:

最大的原因可能是nHibernate支持持久化无知;您的实体可以是普通的旧 CLR 对象(无基类)。它还支持 Subsonic 不支持的工作单元(自动跟踪和批处理更新)。此外,Entity 框架不支持隐式延迟加载(当您要访问 Order.OrerItems 时,您必须调用 Order.OrerItems.Load())。它迫使您考虑延迟加载,但也会因基础架构问题而污染您的业务逻辑。

【讨论】:

那么你是支持还是反对 Nhibernate? “它迫使你考虑懒惰..”是模棱两可的。 我签署了英孚的不信任投票;我认为 Nhibernate 是一个更好的工具。它确实迫使你考虑延迟加载,我认为你应该只在重要的时候考虑它。

以上是关于Nhibernate 与其他 ORM 的区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章

通过 NHibernate 检索/保存链接到其他实体的日志条目的最佳方法是啥?

ORM:LLBLGen 项目和其他

什么是 NHibernate?

实体框架与 NHibernate - 性能

NHibernate 延迟非常高

这个错误在 nhibernate 中是啥意思