2010-04-21 150 views
3

我想進入使用流利NHibernate,我有幾個問題。我發現文檔缺乏。流利NHibernate入門

  1. 我明白,流利的NHibernate/NHibernate允許你自動生成數據庫模式。人們通常只對Test/Dev數據庫這樣做嗎?還是可以做一個生產數據庫?如果生產可以,那麼您如何確保每次運行應用程序時都不會丟失生產數據?

  2. 一旦數據庫模式已經被創建,並且你有生產數據,當新的表/列/等等。需要添加到測試和/或生產數據庫,人們是否允許NHibernate做到這一點,或者這應該手動完成?

  3. Fluent NHibernate有沒有真正的好文檔? (請不要將我指向wiki,因爲在跟隨「自己的第一個項目」代碼的構建過程中,我遇到了運行時錯誤,因爲他們忘記了要求添加參考,而不是很酷。)

感謝, 安迪

回答

3

我幾個月來一直在使用Fluent NHibernate Automapping。我絕不是專家,但可以採取刺你的問題...

FNH Automapping確實創建POCO類,包括其他對象的列表DB模式(這是我選擇NHibernate的原因第一名)。

當您更改模式時,您不得不重新運行自動映射,遺憾的是,它會刪除整個數據庫。在我的情況下,這不是一個大問題,因爲我正在導入現有的二進制數據文件,所以我只需在每次架構更改時重新導入我的數據。我讀過NHibernate提供的一些數據遷移支持,但沒有這方面的經驗。 (順便說一句,亞音速做數據遷移,但它的自動映射功能是更爲基本的 - 至少這是幾個月前,當我評價的話)

FNH文檔是我的眼中釘之一 - 他們甚至還沒有在方法名稱等方面增加了Intellisense的幫助(但是當你指出這一點時,它們會變得非常的令人毛骨悚然 - 問我我是怎麼知道的!)當我可以的時候,我已經對wiki進行了一些編輯,但還有更多可以在那裏完成。最好的方法是從一個實例開始(即 this one from Nikola Malovic,並且如果(當!)遇到問題時,將問題發送到support form。總的來說,我發現FNH社區非常有幫助,並且能夠解決我所有的困難。他們還修復了我找到的一些錯誤。

總的來說,使用FNH對我的項目來說是一個巨大的勝利 - 強烈推薦!

+0

謝謝你的提示。我現在放棄流利的NHibernate - 太令人沮喪了,而且據我所知,EF已經達到了相當的成熟程度。 – Andy 2010-04-23 21:25:16

+0

很抱歉聽到這個消息。起初我也覺得很沮喪,但現在真的很高興我堅持下去。幾個月前,我簡單地研究了EF,但口碑不好,我無法確定它是否自動映射。也許VS 2010的發佈將解決人們報告的主要問題。 – 2010-04-23 21:41:40

1

我不使用流利,但我可以用經典的NHibernate的幫助。

  1. 是的,該模式的創建非常值得推薦用於生產使用(模式導出)。當你這樣做取決於你。例如,您可以通過安裝程序創建數據庫。您不應該刪除現有數據庫,但這是您應用程序的決定。

  2. 我不明白這個問題。你的意思是你需要將現有的數據庫升級到新的數據庫模式嗎?不幸的是,這是你需要實現的東西。 NH對此無能爲力,因爲它對您的數據和您所做的更改非常具體。還有一個架構更新或類似的東西,不建議用於生產用途。

  3. 我不使用Fluent,所以我無法幫到這裏。