當使用EF生成數據庫後,想多個網站使用同一個數據庫,並且進行前臺後臺分離,或者以後進行app擴展使用。
但嘗試分離後,發現第二個網站訪問數據庫時,會提示進行數據庫結構改變,需要遷移的錯誤。
但並未使用過數據庫遷移,也是重新生成的數據庫。
後面同事查閱資料和研究,才發現是數據庫初始化的問題。
Database.SetInitializer<PermissionContext>(null);
該代碼是必須要執行一次的,一般新的網站,必須進行數據庫初始化,可爲空,沒有啥意義,報錯也是牛馬不相及。
如果EF可以默認已經執行該代碼,一旦有初始化需求,再進行重寫即可。
但目前不支持這樣的功能,那就自己手動加上吧。
步驟:
1、老網站還是不變,生成數據庫。
2、新網站,加上代碼即可。
public UserContext(string nameOrConnectionString)
: base(nameOrConnectionString)
{
Database.SetInitializer<PermissionContext>(null);
}