在執(zhí)行ef 數(shù)據(jù)遷移過程中幔戏,會遇到一些問題蜡饵。下面針對問題流昏,做一些解決方案的記載
問題1 生成的數(shù)據(jù)遷移腳本不是最新
如果你的EF 倉儲是泛型DBCONTEXT上下文環(huán)境,由于項(xiàng)目庫的依賴關(guān)系醒第,加之vs自帶緩存DLL 程序集機(jī)制〗回到導(dǎo)致你已經(jīng)執(zhí)行數(shù)據(jù)遷移命令稠曼,但是生成的數(shù)據(jù)遷移腳本是錯誤,還是舊的客年,沒有更新過來霞幅,這個時候只能手動找到項(xiàng)目生成目錄漠吻,1刪除DLL ,2并執(zhí)行清理操作司恳,3重新生成項(xiàng)目途乃,如此才會清除DLL緩存,更新生成新的數(shù)據(jù)遷移執(zhí)行腳本
問題2 GUID字段修改INT 字段 uniqueidentifier 與 int 不兼容
如果直接修改源代碼把GUID類型修改成INT 類型 扔傅,執(zhí)行ef code first 數(shù)據(jù)遷移會失敗耍共,錯誤信息是:uniqueidentifier 與 int 不兼容
這個是SQL 腳本機(jī)制不支持由guid 類型直接轉(zhuǎn)化為int 類型,解決方案是:先刪除guid 字段猎塞,在新增int 字段