NHibernate还是流畅的NHibernate?

UpT*_*eek 36 alt.net nhibernate orm fluent-nhibernate

我有兴趣听取别人的意见,看看他们会选择哪一个(没有'neithers' please;),以及为什么.

使用流利的缺点是什么?(版本依赖可能?)优点,缺点,经验等

And*_*ock 52

流畅的NHIbernate位于NHibernate之上,所以它不是两者之间的选择.如果您打算使用NHibernate,请选择使用Fluent NH来节省大量精力.

流畅的NHibernate很棒,如果没有它我就不会使用NHibernate.您可以流畅地映射所有实体(提供编译时检查和自动化测试支持),而不必维护繁琐的xml文件并记住它们的语法/ DTD.

它还可以根据默认和/或您自己的自定义约定自动映射您的实体.

只是用它!


fos*_*ndy 13

我肯定会说流利的nhibernate.请注意,它可能不一定像您希望的那样顺畅.

  1. 关于版本依赖性

    1. 升级到新版本的FNH时,我遇到了"反向"依赖问题,要求我升级到新版本的NH(我认为是2.0到2.1).这不是我的主要问题.
    2. 我刚刚(今天早上)将NH 2.1.1放入FNH 1.0 RTM(这是2.1.0发布),没有任何戏剧(尚未).
  2. 编辑:自从写完这篇文章以来,FNH已经成熟到我认为这不再是一个真正的问题的地步 支持 - 一些映射还不能用流利的nhibernate.但是,这并不是避免FNH的理由,因为混合的fluent-xml映射允许您在流畅地无法映射它的情况下回退传统的xml(尽管这只是基于每个类的粒度).映射示例:

    1. 无法映射字段 - http://groups.google.com/group/fluent-nhibernate/browse_thread/thread/a7787927dafd23a/84ce2616946a18d7
    2. 无法映射字典http://groups.google.com/group/fluent-nhibernate/browse_thread/thread/d38b6c72250cd2fb的某些时间- 实际上从我收集的内容中存在此功能但尚未在主线中.
  3. 复合复杂因子.从它的声音,你将同时学习FNH和NH.对于大多数相当简单的应用程序,这很好 - 事实上FNH通常非常好,您需要对hbm.xml映射知之甚少.但是如果你想做一些相当复杂的事情,那么它很少会在第一时间工作,你会想知道它是否是PEBKAC,流利或NH问题.比我更希望我最终编写传统的xml映射(当然,无论如何你都是这样做的,但最好不要花费更多的精力而不是先用流利的方式来摆弄它).

  • 仅供参考,现在最新版本支持字段. (3认同)

Eri*_*ebo 9

将Fluent NHibernate与NHibernate一起使用的好处是,如果你弄乱了映射而不是运行时错误,就会出现编译时错误.在重构代码时,您也可以获得更好的体验,因为在重命名属性或其他任何内容时,映射会保持最新,而不必记住手动修改XML映射文件.

Fluent NHibernate的最大缺点是它仍然处于开发的早期阶段,随着框架的发展进展,存在很大的破坏变化的风险.