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

时间:2012-11-20 19:22:43

标签: nhibernate fluent-nhibernate nhibernate-mapping fluent-nhibernate-mapping

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

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

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

3 个答案:

答案 0 :(得分:20)

Fluent NH

  

Fluent NHibernate提供了NHibernate标准XML的替代方案   映射文件。您可以编写映射,而不是编写XML文档   在强类型C#代码中。这允许轻松重构,改进   可读性和更简洁的代码。

VS。

NH's new mapping by code

  

这是一个无XML的映射解决方案,是其中不可或缺的一部分   NHibernate自3.2以来,基于ConfORM库。它的API试图   符合XML命名和结构。有一个强大的惯例   如何构建映射方法。它的名字几乎总是相同的   到XML元素名称。

答案 1 :(得分:11)

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

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

我还提到了现有的代码库"。显然,如果你有一个已经用Fluent NHibernate映射的项目,那么最好继续使用它。如果您重新开始,也许值得尝试使用内置的#34;映射代码"

答案 2 :(得分:2)

我知道这篇文章已经过时了,但对于对此事感兴趣的任何人,我强烈建议您阅读此博客。它让我非常清楚,它甚至可以让你比较两种方法。

http://notherdev.blogspot.de/2012/01/nhibernates-mapping-by-code-first.html