LINQTOSQL分布式事務(wù)舉例分析

本篇內(nèi)容介紹了“LINQ TO SQL分布式事務(wù)舉例分析”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營(yíng)銷推廣、網(wǎng)站重做改版、尼勒克網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為尼勒克等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

LINQ TO SQL,顧名思義,涉及到了數(shù)據(jù)庫(kù)操作。那么就會(huì)有一個(gè)事務(wù)的概念,例如,假設(shè)我們需要一次性插入兩個(gè)實(shí)體,但希望保證這兩個(gè)操作的完整性的話。

1. 隱式事務(wù)

其實(shí),即便我們不寫代碼,LINQ TO SQL也會(huì)自動(dòng)創(chuàng)建一個(gè)事務(wù)的。默認(rèn)事務(wù)隔離級(jí)別為ReadCommitted

2. 顯式事務(wù)

我們也可以自己寫代碼,來明確地控制事務(wù),默認(rèn)事務(wù)隔離級(jí)別為ReadCommitted

3. LINQ TO SQL分布式事務(wù)

我們也可以使用TransactionScope對(duì)象,來定義LINQ TO SQL分布式事務(wù)。

注意:TransactionScope的默認(rèn)隔離級(jí)別為可串行化,可能帶來并發(fā)鎖沖突問題。

***大概要談一下并發(fā)控制的問題:這個(gè)問題的出現(xiàn)就在于,某些時(shí)候,某個(gè)客戶端讀取到了數(shù)據(jù),然后它斷開了,在本地修改;同時(shí),另外一個(gè)客戶端也讀取到了數(shù)據(jù),并且修改并提交了。此時(shí),***個(gè)客戶端如果再進(jìn)行更新,就應(yīng)該是有所問題的。這就是所謂的并發(fā)問題。

LINQ TO SQL通過在submitchanges方法的時(shí)候指定ConflictMode來定義并發(fā)控制行為:
◆FailOnFirstConflict(默認(rèn)的)
◆ContinueOnConflict

下面有一個(gè)例子,講解了并發(fā)沖突時(shí)繼續(xù)操作,并且對(duì)沖突項(xiàng)進(jìn)行解決

var query = from p in ctx.Products where p.CategoryID == 1 select p;  foreach (var p in query)  p.UnitsInStock = Convert.ToInt16(p.UnitsInStock - 1);  try  {  ctx.SubmitChanges(ConflictMode.ContinueOnConflict);  }  catch (ChangeConflictException)  {  foreach (ObjectChangeConflict cc in ctx.ChangeConflicts)  {  Product p = (Product)cc.Object;  Reponse.Write(p.ProductID + "  ");  cc.Resolve(RefreshMode.OverwriteCurrentValues);   // 放棄當(dāng)前更新,所有更新以原先更新為準(zhǔn)  }  }

“LINQ TO SQL分布式事務(wù)舉例分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

網(wǎng)頁(yè)名稱:LINQTOSQL分布式事務(wù)舉例分析
網(wǎng)站路徑:http://bm7419.com/article12/phocdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站設(shè)計(jì)、企業(yè)建站Google、電子商務(wù)、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)