2010-12-06 40 views
1

我們的產品支持多種數據庫。目前,我們支持FireBird和MSSql,並且未來還會支持Oracle。支持多個DBMS;更新期間更新客戶端數據庫的最佳策略?

當我們推出產品更新時,我們也需要更新客戶端的數據庫模式。

傳統上,我們有一些腳本可以與數據庫版本相適應,比如執行「更改表格添加列」,以便將數據庫升級到正確的版本。這變得很麻煩,因爲我們必須維護兩套sql腳本(如果我們將Oracle添加到混合中,那麼將會有更多的腳本)。

我們在我們的db層中使用實體框架。 EF已經包含數據庫的模式。我想知道 - 是否有一種可以使用EF的方法,並且它是模式知識來處理客戶端數據庫的更新?

編輯 -

這是EF 4.0

回答

-1

您正在使用的EF的版本你都沒有提到。在V4中,您可以使用「Code First」模式。檢出ScottGu's post。我不是100%確定它是否支持你需要的所有數據庫。這隻會創建新的模式,而不會更新現有的模式[/編輯]

這可能是一些工作,但它可能是值得切換到nHibernate,它支持更廣泛的數據庫和自動更新模式。

+2

Code First自動模式生成的問題是它不支持版本控制,它只是丟棄數據庫並重新創建它,我不認爲他的客戶會想要。與流利的Nhibernate模式生成相同,EF團隊正在爲下一個CTP開發遷移解決方案。 – ryudice 2010-12-06 23:40:03

相關問題