NHibernate还是流利的NHibernate?
我很想听听其他人关于他们是否会选择哪一个的意见(请不要“neithers”),以及为什么 使用fluent的缺点是什么?(可能是版本依赖性?)NHibernate还是流利的NHibernate?,nhibernate,orm,fluent-nhibernate,alt.net,Nhibernate,Orm,Fluent Nhibernate,Alt.net,我很想听听其他人关于他们是否会选择哪一个的意见(请不要“neithers”),以及为什么 使用fluent的缺点是什么?(可能是版本依赖性?) 优点、缺点、经验等。流利的NHIbernate位于NHIbernate之上,因此它实际上不是两者之间的选择。如果您打算使用NHibernate,请选择在其上使用Fluent NH,以节省大量精力 流利的NHibernate很棒,没有它我不会使用NHibernate。您可以流畅地映射所有实体(提供编译时检查和自动测试支持),而不必维护繁琐的xml文件并记住
优点、缺点、经验等。流利的NHIbernate位于NHIbernate之上,因此它实际上不是两者之间的选择。如果您打算使用NHibernate,请选择在其上使用Fluent NH,以节省大量精力 流利的NHibernate很棒,没有它我不会使用NHibernate。您可以流畅地映射所有实体(提供编译时检查和自动测试支持),而不必维护繁琐的xml文件并记住它们的语法/DTD 它还可以根据默认和/或您自己的自定义约定自动映射您的实体
就用它吧 将Fluent-NHibernate与NHibernate一起使用的优点是,如果将映射搞砸了,会出现编译时错误,而不是运行时错误。在重构代码时,您还可以获得更好的体验,因为在重命名属性或其他内容时,映射会保持最新,而不必记住手动修改XML映射文件
Fluent NHibernate最大的缺点是,它仍处于开发的早期阶段,随着框架开发的进展,有很大的风险会破坏更改。就个人而言,我对Fluent NHibernate没有太多了解,因为我对映射文件很熟悉。使用VisualStudio创建映射文件是件轻而易举的事,您可以为xml文件设置模式,从而在映射文件上提供intellisense。我同意编译时语法检查是使用fluent-nhibernate的一个优势,但是当我已经熟悉XML映射时,我很难证明学习fluent-API是正确的。也许我应该忘掉我的死亡,并且已经学会了…:-) 我肯定会说用流利的nhibernate。只是要知道,它可能不一定像你希望的那样平稳
流畅的N-Hibernate确实是NHibernate的好包装。在Fluent中管理映射要比xml映射好得多。当你学习流利时,发展会变得很快
最好使用Entity Developer来创建实体和数据库架构。是的,对不起,我的问题措辞应该稍微不同;)谢谢你的回答。是的,我非常同意。我们与Rhino和Geo库一起使用了Fluent。我们偶尔会遇到版本差异!我赞成。我刚开始使用Fluent NHibernate,我不会(不会)回头看。令人惊讶的是,映射类是多么容易。这是真的吗,fluent不再受支持了?@Johnny\u D它还没有死,但是开发速度慢了很多,因为代码映射进入了这个领域。谢谢你的想法-我听到了你的第3点。最后,我选择了FNH,但我也在做一个小项目——这是一个非常好的主意,因为我觉得我学到了很多关于NH的知识,并且对实际发生的事情感到更舒服。(顺便说一句,我必须查找PEBKAC,但是是的-这是我的大多数问题的根源;)仅供参考,最新版本现在支持字段。您始终可以从fluent映射生成hbm.xml并手动编辑它们。不需要手工编写,我要补充的是,使用Fluent配置和PersistenceSpecificationFluent可以轻松地进行单元测试映射,但Fluent仍然不允许使用自定义参数化类型映射属性。在尝试解决以下问题时遇到此问题:根据我的经验,我使用FluentNHibernate时遇到的错误映射大多发生在运行时,即应用程序首次使用NHibernate时。只有简单的重构/类型不匹配/拼写错误等才会导致编译时错误。hbm.xml文件在NHibernate中用于映射,但Fluent NHibernate在C#代码中替换了它。它很容易发现问题并进行维护。我在3年前问过这个问题,这个月它就关闭了?呵呵。