我的工作,它使用實體框架4.1(第一碼)堅持我們的各種對象的數據庫的項目之後。實體框架4.1的模型支持的背景下已經改變,因爲數據庫創建,創建DB
我在Visual Studio與本地的SQL Express數據庫,我們的詹金斯服務器測試部署致力於代碼,測試服務器。發生這種情況時,我暫時將我的本地連接字符串更改爲指向測試數據庫服務器並運行單元測試以重新創建測試數據庫,以便它與我們的最新實體匹配等。
我最近注意到了我們的測試服務器發出此錯誤:
自創建數據庫以來,支持'EntityFrameworkUnitOfWork'上下文的模型已更改。可以手動刪除/更新數據庫,也可以使用IDatabaseInitializer實例調用Database.SetInitializer。例如,DropCreateDatabaseIfModelChanges策略會自動刪除並重新創建數據庫,並可以選擇使用新數據對其進行種子處理。
這通常是我們的代碼已經改變的指示,我需要運行單元測試來重新創建數據庫。除了我剛剛那樣做!我不相信我們的部署過程有什麼問題 - 測試服務器上的DLL似乎與我的本地環境中的版本相同。是否有任何其他設置或環境因素可能會導致有關模型自數據庫創建以來發生更改的錯誤?
我是新來的 - 謝謝你的幫助!
您可以使用'System.Data.Entity.Infrastructure.EdmMetadata.TryGetModelHash(YourDbContext)'方法來獲取ModelHash並嘗試在您的本地PC和測試服務器上查看它們是否不同? – Marc
在重新生成數據庫後,您是否運行了自定義工具以重新生成上下文或POCO? –
@Marc是的哈希似乎是不同的。 – DaveBeta