91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

LINQ TO SQL分布式事務舉例分析

發布時間:2021-12-01 16:03:26 來源:億速云 閱讀:158 作者:iii 欄目:編程語言

本篇內容介紹了“LINQ TO SQL分布式事務舉例分析”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

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

1. 隱式事務

其實,即便我們不寫代碼,LINQ TO SQL也會自動創建一個事務的。默認事務隔離級別為ReadCommitted

2. 顯式事務

我們也可以自己寫代碼,來明確地控制事務,默認事務隔離級別為ReadCommitted

3. LINQ TO SQL分布式事務

我們也可以使用TransactionScope對象,來定義LINQ TO SQL分布式事務。

注意:TransactionScope的默認隔離級別為可串行化,可能帶來并發鎖沖突問題。

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

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

下面有一個例子,講解了并發沖突時繼續操作,并且對沖突項進行解決

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);   // 放棄當前更新,所有更新以原先更新為準  }  }

“LINQ TO SQL分布式事務舉例分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

AI

肇东市| 建阳市| 会理县| 堆龙德庆县| 公主岭市| 武威市| 泗洪县| 鄄城县| 韶山市| 淮安市| 靖宇县| 阿鲁科尔沁旗| 深泽县| 万盛区| 达拉特旗| 外汇| 宜黄县| 百色市| 丁青县| 神农架林区| 平陆县| 大新县| 阿荣旗| 汾阳市| 磐安县| 成武县| 兰溪市| 兴化市| 乌拉特前旗| 高尔夫| 平定县| 多伦县| 融水| 宁晋县| 石景山区| 界首市| 唐山市| 双峰县| 自贡市| 新野县| 同江市|