如果我需要在NHibernate的Fluent NHibernate和標準xml映射文件之間進行選擇,應該考慮哪些內容?你可以比較流利NHibernate與XML配置映射文件?
你能比較一下我應該注意的顯着差異嗎?
如果我需要在NHibernate的Fluent NHibernate和標準xml映射文件之間進行選擇,應該考慮哪些內容?你可以比較流利NHibernate與XML配置映射文件?
你能比較一下我應該注意的顯着差異嗎?
有幾件事情,如上所述,這可能是一個重複的問題,我能想到的主要問題是,您可以更改xml文件而無需代碼重新編譯,但是您不能更改流利映射而無需重新編譯某些內容,因爲它們是由它們的性質編譯的。
這就是說你可以有一個映射程序集,然後修補它。很明顯,無論你做什麼改變,都需要通過集成測試來運行。
除了Fluent Nhibernate可能會讓NHibernate用戶感到困惑,因爲他們混合了一些與自己的術語,所以我總是說你應該從XML文件映射開始,直到你完全理解發生了什麼,然後遷移到Fluent,如果你不需要更改映射而無需重新編譯,因爲它只是更好。
但是,不要忘記,然後在其頂部添加一個抽象層,並帶有自己的怪癖可以進行有趣的調試。
注意:這是更多意見的回答。
實際上有第三個選項,你錯過了。 NHibernate 3.2附帶了它自己的代碼映射語法。
我個人不喜歡的語法,我是一個功能NHibernate風扇和它爲我工作。
我認爲唯一真正需要考慮的是krystan已經提到的,這就是命名差異。
我個人用XML映射扔了毛巾,直到Fluent NHibernate出來後纔再次選擇NHibernate。
我不相信你需要知道任何關於XML映射的內容,如果你想學習XML映射,你可以導出Fluent映射並查看它們。但是Fluent映射真的很簡單。
來自Fluent NHibernate的大部分問題都是來自嘗試使用自動映射的自動映射,它映射了很多假設,如果您計劃生成數據庫模式,那很好,但如果您有現有模式,最好明確映射他們。我總是明確地寫我的地圖。
可能的重複,請參見[這裏](http://stackoverflow.com/questions/5190886/nhibernte-fluent-vs-xml-mapping) – oleksii