2011-08-30 29 views
2

我已經部署了一個使用EF到我的數據庫相同服務器的應用程序。顯然,我第一次在服務器上運行應用程序時,數據庫被創建 - 沒有問題。但是,當我嘗試從我的本地機器使用與在服務器上運行的實例相同的連接字符串/登錄詳細信息運行相同的應用程序時,我得到此異常說明模型已更改,但它沒有:EF 4.1 - 從不同機器上的相同應用程序訪問數據庫的問題

自從 創建數據庫以來,支持'EkmDomainsDbContext'上下文的模型已經更改。可以手動刪除/更新數據庫, 或使用IDatabaseInitializer實例調用Database.SetInitializer。 例如,DropCreateDatabaseIfModelChanges策略 會自動刪除並重新創建數據庫,並可選擇將其與新數據結合使用 。

我認爲這是與EdmMetadata表,但我不知道到底是什麼。任何人都可以解決這個問題?

回答

1

現有的數據庫通常不需要任何數據庫初始化,因此它可以通過調用關閉您的上下文類型:

Database.SetInitializer<YourDataContext>(null); 
+0

我其實不是在任何時候調用SetInitializer - 在那裏,如果已設置了默認值你不調用傳遞null的方法? – jcvandan

+0

感謝這解決了我的問題,就像我說我在做什麼根本不調用SetInitializer,這可能意味着一個默認的初始化設置 – jcvandan

+0

實體框架實際上調用drop創建數據庫如果模型默認更改,除非初始化程序被更改或刪除 –

相關問題