2012-10-14 16 views
0

我在我的項目中使用實體框架5。我想測試一些新的功能。爲什麼我在使用NUnit時得到DbContext已更改異常?

發生了什麼是事件,即使我的數據庫更新(當我添加一個遷移它不會添加任何其他),事件如果我運行我的項目它運行得很好。當我嘗試測試與NUNIT項目我得到這個異常:

System.InvalidOperationException : The model backing the 'DbContext' context has changed since the database was created. Consider using Code First Migrations to update the database

有任何你有這個問題?如果是這樣,我該如何解決它?

+1

不好意思問這個問題,但是你的單元測試項目可能有自己的配置文件指向一個未遷移的數據庫? –

+0

是的它有一個配置文件!但它與主項目的連接字符串完全相同。 – Laggel

回答

2

那麼,我原來的答案被刪除,猜測,因爲它不是一個真正的答案,而是一個聲明,我有同樣的問題。在這一點上,我找到了各種答案,所以也許這個答案會通過。

當然,我只假設我們有同樣的問題,但似乎很可能,因爲症狀是完全相同的。我發現我的存儲庫的連接字符串沒有正確設置,即使我已經使用MyTestProject.dll.config命名約定在配置文件中「正確」設置了該連接字符串。似乎NUnit由於某種原因未使用配置中的連接字符串。

我已經建立了一個臨時解決方案,我使用了一個不同的構造函數,它在爲NUnit創建時爲我的存儲庫強制使用正確的連接字符串。易於實現這一點,因爲我使用DI來創建存儲庫,只需在測試時詢問工廠的不同風味。現在開始工作,找出爲什麼NUnit不像使用配置文件那樣使用它。

也許不是一個完整的答案,但至少這個解決方案讓我回到我可以測試的位置......我們將看看這個問題是否會被刪除。

相關問題