FluentNHibernate和NHibernate的"按代码映射"之间的区别

Ian*_*ink 30 nhibernate nhibernate-mapping fluent-nhibernate fluent-nhibernate-mapping

我来自ORM工具的实体框架和LLBL背景.

我被要求建立一个基于NHibernate的新系统.我从来没有这样做过,所以我带着新鲜的眼睛来看它.

使用Fluent NHibernate进行映射和NHibernate中的"按代码映射"有什么区别?有偏好吗?

dot*_*joe 21

流利的NH

流畅的NHibernate提供了NHibernate标准XML映射文件的替代方案.您可以使用强类型C#代码编写映射,而不是编写XML文档.这允许轻松重构,提高可读性和更简洁的代码.

NH的代码新映射

它是一个无XML的映射解决方案,是自3.2以来NHibernate不可或缺的一部分,基于ConfORM库.它的API试图符合XML命名和结构.有关如何构建映射方法的强烈约定.它的名称几乎总是等于XML元素名称.

  • 那么有什么区别呢? (3认同)

Ori*_*gin 12

其中一些是偏好,一些是现有的代码库.曾经有一段时间NHibernate没有任何内置的非XML映射选项.有一些解决方案可以解决这个问题 - 例如confORM,Fluent NHibernate,以及其他我可能不知道的解决方案.

截至3.2我相信(也许3.0)NHibernate现在有"按代码映射".与Fluent NHibernate相比,它的优势在于它不需要额外的库,并且它由与NHibernate相同的团队支持.另一方面,Fluent NHibernate更成熟(从我所听到的)并且可以支持更广泛的映射函数.

我还提到了"现有的代码库".显然,如果你有一个已经用Fluent NHibernate映射的项目,那么最好继续使用它.如果您刚刚开始,可能值得尝试使用内置的"按代码映射"