我很想听听其他人关于选择哪个的意见(请不要回答“都不选”),以及为什么选择它。
使用Fluent有哪些缺点?(例如版本依赖关系) 优缺点、经验等。
我很想听听其他人关于选择哪个的意见(请不要回答“都不选”),以及为什么选择它。
使用Fluent有哪些缺点?(例如版本依赖关系) 优缺点、经验等。
Fluent NHibernate是基于NHibernate的,所以并不是两者之间的选择。如果您要使用NHibernate,则应选择在其上使用Fluent NH,以节省大量精力。
Fluent NHibernate令人惊叹,没有它我不会使用NHibernate。您可以流畅地映射所有实体(使您具有编译时检查和自动化测试支持),而无需维护繁琐的XML文件并记住其语法/ DTD。
它还可以根据默认和/或您自己的自定义约定自动映射实体。
只需使用它!
我建议使用Fluent NHibernate。但是请注意,可能不会像您希望的那样顺利。
关于版本依赖
编辑:自撰写此文章以来,FNH已经显著成熟,我认为这不再是一个真正的问题了
映射支持-某些映射目前使用Fluent NHibernate无法实现。然而,这并不是避免FNH的理由,因为混合使用Fluent-XML映射使您可以在Fluent无法映射它时退回传统XML(尽管每个类只有一个)。映射示例:
复合复杂度因子。听起来你将同时学习FNH和NH。对于大多数相当简单的应用程序来说,这是可以接受的 - 实际上,FNH通常非常好,你需要了解关于hbm.xml映射的很少知识。但是,如果你想做一些相当复杂的事情,第一次很少能成功,你会想知道这是否是PEBKAC、流畅或NH的问题。比我希望的更经常地,我最终写下了传统的xml映射(当然,无论如何,你都要这样做,但最好不要浪费更多精力来摆弄流利)。
就我个人而言,我并没有深入研究流畅的nhibernate,因为我已经习惯了映射文件。使用Visual Studio创建映射文件非常简单,您可以设置XML文件的模式,这样您就可以在映射文件上使用Intellisense。我同意使用流畅的nhibernate具有编译时语法检查的优点,但是当我已经熟悉XML映射时,我很难证明学习流畅API的必要性。也许我应该克服我的惰性并开始学习它... :-)
Fluent N-Hibernate是NHibernate的一个很好的封装。使用Fluent来管理映射比使用xml映射更好。一旦开始使用Fluent,开发速度就会变得更快...
如果您使用Entity Developer创建实体和数据库架构,则效果最佳。