接上文 項(xiàng)目架構(gòu)開發(fā):數(shù)據(jù)訪問層之IQuery

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

 

本章我們繼續(xù)IUnitOfWork的開發(fā),從之前的IRepository接口中就可以看出,我們并沒有處理單元事務(wù),

數(shù)據(jù)CUD每次都是立即執(zhí)行的,這樣有一些不好的地方,比如數(shù)據(jù)訪問次數(shù)會(huì)增多,一筆數(shù)據(jù)的完整性無法保證

比如:批量新增2條記錄,只有一條成功,這樣的情況就應(yīng)該Rollback;可能有人已經(jīng)想到用數(shù)據(jù)庫自帶的事務(wù)保證完整性

雖然是可以,但是這樣就不可避免地在業(yè)務(wù)層耦合SqlTransaction,我不想這種情況出現(xiàn);

所以我們用windows自帶的分布式事務(wù)TransactionScope來實(shí)現(xiàn),TransactionScope可以實(shí)現(xiàn)多個(gè)數(shù)據(jù)庫的事務(wù)鎖,這點(diǎn)就比SqlTransaction強(qiáng)一些

當(dāng)然我了解到分布式事務(wù)是不一般的復(fù)雜的,那些更好的處理方式我還沒有掌握,所以先這么寫吧,有這方面經(jīng)驗(yàn)的朋友歡迎提建議

網(wǎng)友評(píng)論