你能比较Fluent NHibernate和xml配置映射文件吗?

时间:2011-07-13 09:55:11

标签: c# .net nhibernate fluent-nhibernate

如果我需要在NHibernate的Fluent NHibernate和标准xml映射文件之间做出选择,我应该考虑什么?

你能比较我应该注意的显着差异吗?

2 个答案:

答案 0 :(得分:1)

有些事情和提到的这可能是一个重复的问题,我能想到的主要问题是你可以在没有代码重新编译的情况下更改xml文件,但是你不能在不重新编译的情况下更改流畅的映射,因为它们本质上是编译的。

那说你可以有一个映射程序集,然后只修补它。显然,无论你做什么改变,都需要通过集成测试来运行。

除了Fluent Nhibernate可能会让NHibernate用户感到困惑,因为他们将一些术语与他们自己混淆了所以我总是说你应该从XML文件映射开始,直到你完全理解发生了什么,然后如果你不需要迁移到Fluent更改映射而不重新编译,因为它只是读得更好。

但是不要忘记你在顶部添加了一层抽象,它有自己的怪癖,可以进行有趣的调试。

答案 1 :(得分:0)

注意:这更多是一种意见回答。

实际上你错过了第三个选项。 NHibernate 3.2附带了它自己的代码映射语法。

http://nhforge.org/blogs/nhibernate/archive/2011/09/05/using-nh3-2-mapping-by-code-for-automatic-mapping.aspx

我个人不喜欢语法,我是一个流利的NHibernate粉丝,它对我有用。

我认为唯一需要考虑的是Krystan已经提到的,这就是命名差异。

我亲自投入了XML映射,并且在Fluent NHibernate问世之前没有再选择NHibernate。

我不相信您需要了解有关XML映射的任何信息,如果您想学习XML映射,可以导出Fluent映射并查看它们。但是,Fluent Mappings真的很简单。

来自Fluent NHibernate的大多数问题来自尝试使用自动映射来映射许多假设,如果您计划生成数据库模式,那很好,但是如果您有现有模式,最好明确映射它们。我总是明确写出我的地图。