2013-06-20 122 views
0

我已經上傳了我的MVC3項目,這是一個簡單的博客,起初它運行良好,但幾個小時後!以下錯誤出現(我做了自定義錯誤爲關閉看到錯誤)在數據庫創建期間更改模型

The model backing the 'SiteContext' context has changed since the database was created. Either manually delete/update the database, or call Database.SetInitializer with an IDatabaseInitializer instance. For example, the DropCreateDatabaseIfModelChanges strategy will automatically delete and recreate the database, and optionally seed it with new data. 

解決這個我必須手動刪除我的數據庫,並重新創建,然後恢復到我所創建的備份。但經過2個小時後,我得到了錯誤!

我真的不知道,是什麼原因造成的?

回答

0

當您創建模型並要求EF從中創建數據庫時,EF將散列模型並將散列值與數據庫一起存儲。無論何時創建上下文,EF都會重新計算哈希值並將其與數據庫中存儲的值進行匹配。如果模型以任何方式改變,結果散列將會不同,EF將拋出剛纔看到的異常。這是爲了保持模型與數據庫同步。

模型在運行時可以有任何改變嗎?

有一兩件事你可以做找出不同之處是

1.Re創建從模型數據庫,你現在所做的,並得到它腳本(script1.sql)。

2.Wait直到錯誤發生,並刪除數據庫,並再重新創建和腳本它(script2.sql)

3.Try比較兩個,看看你是否能發現的差異模式。

這應該會讓您知道模型中發生了什麼變化。

Goodluck