2013-12-11 36 views
2

我們使用Code First遷移並使用Application_Start事件中的DBMigrator.Update()應用它們。最近在部署新的遷移時,我們從Application_Start得到以下異常:代碼優先遷移使用事務嗎?

PK_dbo._ MigrationHistory'。不能在對象 'dbo中插入重複密鑰。 _MigrationHistory'。重複的鍵值是 (201312020928218_ModifyReport)

這表明,1)的Application_Start跑了一次以上; 2)代碼首先遷移不會使用事務,以防止相同的遷移正在嘗試多次。如果那樣的話,我們應該將遷移完全移出應用程序,並將其作爲部署的一部分而不是?

回答

0

Code First遷移不使用事務。 我想你可以自定義遷移來使用它們,至少在EF6中。

我有點在類似的問題,我自己目前的鬥爭。 除此之外,我會將更新作爲部署的一部分,而不是作爲應用程序的一部分。