0
我有一個現有的數據庫。爲了擺脫的「語境已經改變,因爲數據庫創建」與現有數據庫發生異常,我稱之爲Global.asax.cs中的的Application_Start()以下的建議在我讀:實體框架與現有數據庫 - 最新方法?
Database.SetInitializer<SomeEntities>(null);
的問題是,我需要添加一行的Application_Start對於具有一些問題,每個現有的實體: -
- 如果我添加一個新entitity現有表,然後我需要記住在Application_Start()中調用它。問題是Application_Start從我添加的類中刪除,所以我傾向於忘記這個,這意味着我繼續觸發異常。
- 實體上的操作從它正在處理的實體代碼中移除,因此通過查看初始化程序爲空的實體類並不明顯。這是我一直遺忘的原因之一 - 因爲我沒有在我現有的課程中看到它。同樣,如果我刪除一個實體並從我的解決方案中刪除該類,我需要記住要在Application_Start中進行挖掘。
- 啓動代碼與Database.SetIntializer()調用混雜在一起。
理想情況下,我想在實體類(從DBContext派生)的構造函數中調用此函數。我嘗試以下,但它沒有工作:
Database.SetInitializer(false);
所以,我的問題是,什麼是設置實體類(即從的DbContext派生類)中的初始化,而不是在的Application_Start的最佳途徑。也許是調用Database.SetInitializer的Entities類中的靜態構造函數?
如果Database.SetInitializer(假)在構造函數是正確的做法,然後我將與它堅持下去,看看我錯了。
感謝,靜態構造函數是什麼,我會去用,但不知何故,我錯過了,表明這是最好的方式的引用。 – acarlon