EntityFramework

第一次EF使用經(jīng)歷

我EF用的比較晚,上來(lái)就是6.1.3.
所以這里只寫這個(gè)版本的EF.

可配置項(xiàng)

配置在web.config中的數(shù)據(jù)庫(kù)連接串.
圈子中的EF,配置項(xiàng)在Yingqi.Infrastructure的persistence文件夾下:
Configuration類,配置Developing方法的返回值將決定是否開(kāi)啟Develop模式.
AutoMigration類,配置是否開(kāi)啟自動(dòng)遷移和是否允許遷移過(guò)程中數(shù)據(jù)損失.

實(shí)體注冊(cè)

圈子中的數(shù)據(jù)實(shí)體綁定是重寫了DbContext的OnModelCreating方法,直接在這里通過(guò)IOC容器將所有的
繼承自IModelProvider接口的實(shí)體類一次注入.
所以,這里強(qiáng)行DDD導(dǎo)致我無(wú)法將自動(dòng)遷移改造為手動(dòng)遷移,除非做出巨大的改動(dòng).

數(shù)據(jù)遷移

quanzi中,只有自動(dòng)遷移的模式.
在這個(gè)模式下,請(qǐng)一定要按照Base模型考慮清楚具體的數(shù)據(jù)模型改變.
一定要人工預(yù)估清楚具體的更改,否則自動(dòng)遷移會(huì)給你帶來(lái)巨大麻煩.
然后,按照數(shù)據(jù)庫(kù)的改變,編寫對(duì)應(yīng)的sql,并在正式庫(kù)上執(zhí)行.

在后續(xù)項(xiàng)目中使用EF

可配置項(xiàng)

配置在web.config中的數(shù)據(jù)庫(kù)連接串.
以及配置Migrations文件夾下的Configration.
就不再采用自動(dòng)遷移了.

實(shí)體注冊(cè)

直接在DbContext類中,寫下具體的DbSet<TEntity> EntityName{get;set;},所有數(shù)據(jù)表都寫在這里.
這里改變了想法,放棄了DDD中的持久化無(wú)關(guān)性,從而認(rèn)為,一定會(huì)有一個(gè)層面,知道所有的數(shù)據(jù)庫(kù)細(xì)節(jié).

數(shù)據(jù)遷移

采用手工遷移方案.
主要常用的手工遷移命令如下:
首先,添加遷移文件夾以及配置類
然后,在程序包管理控制臺(tái) 輸入Add-Migration,參數(shù)有很多,主要包括程序集名稱,數(shù)據(jù)庫(kù)連接串,是否強(qiáng)制.詳見(jiàn)MSDN
運(yùn)行成功之后會(huì)生成一個(gè)遷移歷史文件.里面有C#代碼描述的數(shù)據(jù)庫(kù)變化.
之后輸入 Update-Database ,具體參數(shù)跟Add-Migration類似.可以輸入-script,生成腳本,放到遠(yuǎn)程(生產(chǎn)環(huán)境)執(zhí)行.不輸入則修改當(dāng)前連接串

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容