EntityFramework

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

我EF用的比較晚,上來就是6.1.3.
所以這里只寫這個版本的EF.

可配置項

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

實體注冊

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

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

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

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

可配置項

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

實體注冊

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

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

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

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

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

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