最近忙著新專案的架構,已經有一段時間沒有更新部落格了,一直考慮著要寫些什麼,直到有一天跟朋友談起他們公司開發資料層遇到的一些問題時,我想應該分享一些專案中使用的資料訪問模式。
雖然最近一直都在使用go語言開發資料伺服器,但是本篇文章用到的語言仍然是c#,文章內提供的**僅僅是分享如何使用工作單元,至於如何將這個模式引入到專案中去,就需要各位自己去實現了,畢竟每個專案都是不一樣的,需要根據專案具體的環境來進行組合。
本篇文章包括以下內容:
什麼是工作單元
該模式用來維護乙個由已經被業務事務修改(crud除了r)的業務物件組成的列表並負責協調這些修改的持久化工作以及所有標記的併發問題。
在web應用中,由於每個使用者的請求都是屬於不同執行緒的,需要保持每次請求的所有資料操作都成功的情況下提交資料,只要有乙個失敗的操作,則會對使用者的此次請求的所有操作進行回滾,以確保使用者操作的資料始終處於有效的狀態。
需要更詳細的了解,可以檢視此篇文章。
基於ado.net的實現
在不使用任何資料層框架,僅僅使用ado.net的情況下,一般流程的方式如下:
一般情況下,我們會給每個資料庫表建立對應的資料庫互動類並提供crud方法,除了r以外,其他的方法都會實現以上的流程。
然而如果使用者一次請求會進行多次cud操作的情況下,只能在使用者開始進行資料操作之前使用transactionscope將多次操作包裹在內,這樣實現相對麻煩的。
拿了工資就要幹活,不幹活不是成了騙錢?
前幾日,頭目在攝像頭中發現有人快2點了還在睡覺 一點開始工作 此人主管說已經說過他幾次了,沒什麼效果。領導給他打了 表示好好工作。今天另外乙個頭目在群裡發了他週報與工作不符,說是處理了bug,一行 都沒提交。他說自己有個分支,下週提交。領導怒了,列出分支最早是6號的修改,解釋不清楚走人吧。主管當好人...
開始認真幹活了
最近事情不少,人卻很消極,或者說還沉浸在寒假當中.聽說dj師兄從final回來了,高興一下,他自己覺得發揮的很好就可以了,希望早日能夠達到師兄的水平.3月25的武大預選賽報名時間推遲到了3月20號,看了下報名表,發現很多強隊,後來還聽說gardon要帶一批人過去,汗了.我們也就過去鍛鍊一下吧,入圍的...
工作 幹活 謹記幾點
不管在哪個行業,只有把公司的利益當做最大化,把領導交代的事情,認真做好,這樣才是我們才能存在於公司的意義。第一句話 遇到問題你就說是別人的原因,你立刻原地踏步,簡稱自殺 找藉口 1 越會處理問題,收入越高。2 付出就會有回報。第二句話 公司找你來就是讓你解決問題,公司若沒有問題你立刻失業 1 凡是好...