我的應用程序使用EF代碼優先設計,所有的一般工作得很好。EF代碼第一次數據庫/表初始化 - 什麼時候發生?
通過一個私有配置文件,我可以指定如何讓EF處理對db模式的更改,並根據需要創建/重新創建相關表 - 這些選項是「never」,「create」,「always」 ,「onSchemaChanged」和(將來)「onSchemaModified」。
這種運作良好 - 但我在幾個地方迷路.....
在開發過程中,我想用在 「Database in use error with Entity Framework 4 Code First」中描述的鉤 - 但這似乎執行在我的節目」
public void InitializeDatabase(Context context)
{
context.Database.SqlCommand("ALTER DATABASE Tocrates SET SINGLE_USER WITH ROLLBACK IMMEDIATE");
_initializer.InitializeDatabase(context); // Maybe this does nothing if not needed
context.Database.SqlCommand("ALTER DATABASE Tocrates SET MULTI_USER")
}
所以..真實,我的問題的每一次運行:有,我可以用它來檢測是否EF實際上是試圖修改數據庫的覆蓋,這樣我就可以設置此SINGLE_USER東西何時需要?如果是這樣,我可以檢測到原因 EF正在執行所以(看我上面的選項列表),所以我可以登錄更改的原因?...
非常感謝所有的幫助和建議。
非常好!這正是我正在尋找的 - 謝謝。 – JcMaltaDev