我很想听听其他人关于他们是否会选择的意见(请不要“都不是”;),以及为什么。
使用流利的缺点是什么?(可能是版本依赖性?)优点,缺点,经验等。
我很想听听其他人关于他们是否会选择的意见(请不要“都不是”;),以及为什么。
使用流利的缺点是什么?(可能是版本依赖性?)优点,缺点,经验等。
Fluent NHIbernate 位于 NHibernate 之上,因此它并不是两者之间的真正选择。如果您打算使用 NHibernate,请选择在其之上使用 Fluent NH,以节省大量精力。
Fluent NHibernate 很棒,没有它我不会使用 NHibernate。您可以流畅地映射所有实体(为您提供编译时间检查和自动化测试支持),而不必维护繁琐的 xml 文件并记住它们的语法/DTD。
它还可以根据默认和/或您自己的自定义约定自动映射您的实体。
就用吧!
我肯定会说使用fluent-nhibernate。请注意,它可能不一定像您希望的那样顺利。
关于版本依赖
编辑:自从写这篇文章以来,FNH 已经成熟到我认为这不再是一个真正的问题的地步了
映射支持——一些映射还不能使用流畅的 nhibernate。但是,这不是避免 FNH 的原因,因为混合 fluent-xml 映射允许您在 fluent 无法映射它的情况下回退到传统 xml(尽管这仅适用于每个类的粒度)。映射示例:
复合复杂性因子。从它的声音来看,您将同时学习 FNH 和 NH。对于大多数相当简单的应用程序来说,这很好——事实上,FNH 通常非常好,以至于您几乎不需要了解 hbm.xml 映射。但是如果你想做一些相当复杂的事情,它很少会在第一轮工作,你会想知道它是 PEBKAC、流利还是 NH 问题。比我希望的更多的时候,我最终编写了传统的 xml 映射(当然,无论如何你都在这样做,但最好不要花费更多的精力而不是首先摆弄 fluent)。
将 Fluent NHibernate 与 NHibernate 一起使用的优点是,如果您弄乱了映射,您会得到编译时错误,而不是运行时错误。在重构代码时,您还会获得更好的体验,因为您的映射会在您重命名属性或其他任何内容时保持最新,而不必记住手动修改 XML 映射文件。
Fluent NHibernate 最大的缺点是它仍处于开发的早期阶段,随着框架的开发进展,存在相当大的破坏更改的风险。
就我个人而言,我对流利的 nhibernate 并没有真正了解,因为我对映射文件感到满意。使用 Visual Studio 创建映射文件轻而易举,您可以为 xml 文件设置架构,从而为您提供映射文件的智能感知。我同意编译时语法检查是使用 fluent-nhibernate 的一个优势,但是当我已经熟悉 XML 映射时,我很难证明学习 fluent API 的合理性。也许我应该克服我的嗜睡并已经学习它...... :-)
Fluent N-Hibernate 确实是 NHibernate 的一个很好的包装器。在 Fluent 中管理映射比 xml 映射好得多。当您使用 Fluent 时,开发会变得更快......
最好使用 Entity Developer 创建实体和数据库模式。