我来自ORM工具的实体框架和LLBL背景。
我被要求建立一个基于NHibernate的新系统。我从来没有这样做过,所以我带着新鲜的眼睛来看它。
使用Fluent NHibernate进行映射和NHibernate中的“按代码映射”有什么区别?有偏好吗?
答案 0 :(得分:20)
Fluent NHibernate提供了NHibernate标准XML的替代方案 映射文件。您可以编写映射,而不是编写XML文档 在强类型C#代码中。这允许轻松重构,改进 可读性和更简洁的代码。
VS。
这是一个无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