3
我有測試和活動分貝。對於測試數據庫遷移,我在包管理器控制檯中使用Add-Migration ...
和Update-Database
語法。但是對於活的數據庫,我希望在應用程序啓動時以編程方式執行。實體框架核心以編程方式應用遷移
下面的代碼並沒有幫助我:
context.Database.Migrate();
我有錯誤Invalid object name 'TempTenants'
當我嘗試添加記錄不存在的表。這是我的新桌子。
但我有_EFMigrationsHistory
表。而且,我所有的遷徙,甚至是那些沒有實施的遷徙。但我沒有看到新桌子。
如果我手動從測試數據庫中刪除表並嘗試重現錯誤,我會得到相同的結果。
因此,context.Database.Migrate();
只創建具有所有遷移的新數據庫,如果它不存在但不更新(應用遷移)現有數據庫。
我可以這樣做嗎?我該如何解決這個問題?
請更清楚「沒有幫助我」。爲什麼?發生了什麼?錯誤信息?你的數據庫最初也是由遷移創建的(是否有'__EFMigrationsHistory'表)? – Tseng
@Tseng我已經更新了我的問題,請看看。 –
開始時沒有例外嗎?日誌讀取的內容是什麼?用戶是否對數據庫服務器有足夠的寫入權限? (ALTER/CREATE語句) – Tseng