2011-07-13 73 views

回答

1

有幾件事情,如上所述,這可能是一個重複的問題,我能想到的主要問題是,您可以更改xml文件而無需代碼重新編譯,但是您不能更改流利映射而無需重新編譯某些內容,因爲它們是由它們的性質編譯的。

這就是說你可以有一個映射程序集,然後修補它。很明顯,無論你做什麼改變,都需要通過集成測試來運行。

除了Fluent Nhibernate可能會讓NHibernate用戶感到困惑,因爲他們混合了一些與自己的術語,所以我總是說你應該從XML文件映射開始,直到你完全理解發生了什麼,然後遷移到Fluent,如果你不需要更改映射而無需重新編譯,因爲它只是更好。

但是,不要忘記,然後在其頂部添加一個抽象層,並帶有自己的怪癖可以進行有趣的調試。

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映射真的很簡單。

來自Fluent NHibernate的大部分問題都是來自嘗試使用自動映射的自動映射,它映射了很多假設,如果您計劃生成數據庫模式,那很好,但如果您有現有模式,最好明確映射他們。我總是明確地寫我的地圖。