亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Asp.Net Core工作單元中的UnitOfWork數據訪問模式是怎樣的

發布時間:2021-09-18 15:52:16 來源:億速云 閱讀:170 作者:柒染 欄目:編程語言

這篇文章將為大家詳細講解有關Asp.Net Core工作單元中的UnitOfWork數據訪問模式是怎樣的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

有些同學可能會說我現在的項目毫無項目架構可言,是真的嗎?為什么會出現這種疑問。

項目架構這個東西是不斷的根據自己的實際業務來演變過來的,在這個前輩們探索的過程中,因此慢慢的提煉別總結出了一些經驗(也就是設計思想),最后就形成了架構模式吧。

一切事物存在即合理,所以你的項目一定是有架構可言的,只是當前的這個架構可能無法更好的滿足你業務要求了,你需要進行演變升級了哦。

何為項目架構分層

系統架構分層和項目架構分層的區別?

這兩個從字面意思很容易混淆,但是這兩個概念的確是兩碼事,希望大家能否分的清楚。

? 系統架構分層:站的角度是硬件(物理)層面(反向代理,正向代理,第三方中間件)。

? 項目架構分層:站的角度是軟件(邏輯)層面(Code代碼層面)。

經典的三層架構(3-Layer)優缺點

? 優點:分層簡單,容易上手,是code monkey猴子都容易上手。

? 缺點:大量重復性的CRUD代碼。

阿笨經常說的一句話:erverything is price

一個新的東西的引入雖然解決了上一個存在的問題,但是也是有代價了,將會產生出新的問題。

Asp.Net Core工作單元中的UnitOfWork數據訪問模式是怎樣的

顧名思義,三層架構分為三層,分別是“數據訪問層”、“業務邏輯層”、“表示層”。

? 數據訪問層(DAL):實現對數據庫中數據的讀取和保存操作。

? 業務邏輯層(BLL):它是DAL和UI層的連接橋梁.既然稱作業務層,必然有他的用處,不僅僅是一個中轉的功能。

阿笨給大家的建議要記住UI層面上的邏輯可以放在UI層,業務層面上的邏輯建議還是規范一點放在業務邏輯層。

業務邏輯層BLL到底有什么用? 
https://www.cnblogs.com/Garden-blog/archive/2011/04/12/2013268.html

? 表示層(UI):主要功能是顯示數據和接受傳輸用戶的數據,例如Windows窗體和Web頁面。

Repository倉儲模式優缺點

1)、什么是倉儲(Repository)是什么?

Repository;中文翻譯為倉庫,大家都知道倉庫里面裝了很多各種各樣的東西,那么你需要東西只要從倉庫里面拿去就可以了,你不用關系倉庫里面的東西存放在具體的那個位置上。調用方不要問,也不需要知道,你只負責從里面拿(獲取)即可。

一般結合ORM框架,比如EF,Dapper等等。因為這類的框架天生就具備了高度復用的CRUD特性功能。

? 優點:

1、CRUD達到了復用目的(把一些公共的調用數據庫的方法剝離出來,減少冗余的代碼)。

2、為業務開發(程序開發)提供統一的規范。大家編碼都規范了,都按照標準的作業模式讓倉庫中放存放(編寫代碼)自己的東西了,用到的時候大家都可以互相借用(共用)。

? 缺點:    

1)、多個Repository之間怎么保存在一個事務單元內的操作?

UnitOfWork工作單元模式

1. 什么叫工作單元?

跨多個請求的業務,統一管理事務,統一提交。

2. 為什么要工作單元?

 我們經常的代碼都是分層的,有可能到處都在 new DbContext(options),這是就要面對如何管理這些DbContext,在AspNetCore中 services.AddDbContext<>默認是用的Scope的作用域,也就是每次HttpRequest,比以前好了很多。但是事務這些管理還是很麻煩。

Asp.Net Core工作單元中的UnitOfWork數據訪問模式是怎樣的

 如上圖 有一個Action需要調用很多Service 然后 Service之間又相互調用,在開啟Action時 其實是想開啟一個事務,但是某些內部代碼有可能自己去開啟了事務。相互之間調用管理起來非常麻煩。經常出現不可估計的問題。如果有一個集中管理的地方就好很多。比如在Action這里啟動一個工作單元,后續所有的業務都使用同一個事務 和 DbContext,這才是我們的預期的。

3. 如何使用工作單元?

http://www.aspnetboilerplate.com/Pages/Documents/Unit-Of-Work

只需要記住一點:當 Unit Of Work 中的 Commit() 方法執行時,所有倉庫Repository中發生在對象上的修改都將提交到數據庫中。

關于Asp.Net Core工作單元中的UnitOfWork數據訪問模式是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

肥城市| 中牟县| 民乐县| 若尔盖县| 金平| 双柏县| 安岳县| 道孚县| 阳西县| 高尔夫| 京山县| 尼勒克县| 乐至县| 科技| 肥东县| 开阳县| 临漳县| 南昌市| 泉州市| 东莞市| 新乡市| 合川市| 江陵县| 鹰潭市| 五大连池市| 铜川市| 阆中市| 宁波市| 江城| 子长县| 临朐县| 安平县| 崇信县| 兰坪| 和顺县| 卢湾区| 万宁市| 镇雄县| 平武县| 年辖:市辖区| 仙游县|