中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

基礎才是重(zhong)中之重(zhong)~.net中的(de)顯式事務與(yu)隱(yin)式事務

 回到目錄

.net中的(de)事務(wu)可以分為顯式(shi)的(de)和(he)穩式(shi)的(de),顯式(shi)的(de)就(jiu)是說(shuo)需要我們手(shou)動去指定事務(wu)的(de)提交和(he)回(hui)滾,而穩式(shi)的(de)是.net幫助(zhu)我們進(jin)行(xing)管(guan)理(li)的(de),當你的(de)事務(wu)代碼段(duan)沒有發生異常時(shi),它會幫助(zhu)我們進(jin)行(xing)提交,反之(zhi),進(jin)行(xing)事務(wu)加滾,這也(ye)是合情(qing)合理(li)的(de)。

以下是MSDN中的說(shuo)明:

CommittableTransaction 類為應用程序使用事務提供了一種顯式方法,而不是隱式地使用 類。與 TransactionScope 類(lei)不(bu)同,應(ying)用(yong)程(cheng)序編寫器需要明確調用(yong) 和 方(fang)法(fa)(fa)以提(ti)交(jiao)(jiao)或中止(zhi)事(shi)務(wu)。但是(shi),只有事(shi)務(wu)的創(chuang)建者(zhe)才能提(ti)交(jiao)(jiao)事(shi)務(wu)。因(yin)此,通過 方(fang)法(fa)(fa)獲(huo)得的可提(ti)交(jiao)(jiao)事(shi)務(wu)的副本不(bu)是(shi)可提(ti)交(jiao)(jiao)的。

顯式事務:

創建 CommittableTransaction 不會自(zi)動設(she)置(zhi)環境事(shi)(shi)務(wu)(wu)(wu)(環境事(shi)(shi)務(wu)(wu)(wu)是(shi)您(nin)的(de)(de)代碼(ma)在其(qi)中(zhong)執行(xing)的(de)(de)事(shi)(shi)務(wu)(wu)(wu))。可以通過調用全(quan)局(ju) 對象的(de)(de)靜態 屬性獲取或設(she)置(zhi)環境事(shi)(shi)務(wu)(wu)(wu)。有關環境事(shi)(shi)務(wu)(wu)(wu)的(de)(de)更多信息,請(qing)參見 主題的(de)(de)“Managing Transaction Flow using TransactionScopeOption”(使用 TransactionScopeOption 管(guan)理事(shi)(shi)務(wu)(wu)(wu)流)一(yi)節。如果未設(she)置(zhi)環境事(shi)(shi)務(wu)(wu)(wu),資(zi)源管(guan)理器(qi)上的(de)(de)任(ren)何操作(zuo)都(dou)不屬于該事(shi)(shi)務(wu)(wu)(wu)。您(nin)需要顯式設(she)置(zhi)或重置(zhi)環境事(shi)(shi)務(wu)(wu)(wu),以確(que)保資(zi)源管(guan)理器(qi)在正確(que)的(de)(de)事(shi)(shi)務(wu)(wu)(wu)上下文中(zhong)進(jin) 行(xing)操作(zuo)。

在提交 CommittableTransaction 之前,事(shi)務所涉及的所有資源仍然(ran)是鎖定的。

CommittableTransaction 對象不能(neng)被重用。一(yi)經提交或回(hui)滾,就不能(neng)在事務(wu)中再次使(shi)用它或將它設置為當前環境事務(wu)上下文。

穩式事務:

在通過 new 語句實例化 TransactionScope 時,事務管理器將確定要參與哪個事務。一經確定,此范圍將始終參與該事務。此決策基于兩個因素:是否存在環境事務以及構造函數中 TransactionScopeOption 參數的值。環境事務是在其中執行您的代碼的事務。通過調用 Transaction 類的(de) 靜(jing)態屬性可(ke)獲取對環境(jing)事務的(de)引用(yong)。有(you)關如何(he)使(shi)用(yong)此參(can)數的(de)更多信(xin)息,請(qing)參(can)見 主題的(de)“事務流管理”一節。

如果在事務范圍中(即從初始化 TransactionScope 對象到調用其 方法之間)未發生異常,則允許該范圍所參與的事務繼續。如果事務范圍中的(de)確發生了異常,它(ta)所參與(yu)的(de)事務將(jiang)回滾(gun)。

當應用程序完成它要在一個事務中執行的所有工作以后,您應當只調用 方法一次,以通知事務管理器可以接受提交事務。未能調用此方法將中止該事務

對 Dispose 方(fang)法的調用標志著該事(shi)務范圍(wei)的結束(shu)。在調用此方(fang)法之后發生(sheng)的異常不會影(ying)響該事(shi)務。

如果在范圍中修改 Current 的值,則會在調用 Dispose 時引發異常。但是,在該范圍結束時,先前的值將被還原。此外,如果在創建事務的事務范圍內對 Current 調用 Dispose,則該事(shi)務將在相(xiang)應范圍末尾處(chu)中(zhong)止。

建立使用事務的(de)格式為(wei):

 1 using (TransactionScope scope = new TransactionScope())
 2 {
 3  try
 4   {
 5     //代(dai)碼段(duan)
 6     scope.Complete();
 7   }
 8  catch(exception)
 9  {
10    throw;
11  }
12   finally
13  {
14    scope.Dispose();//手動釋放(fang)事(shi)務(wu) 
15  }
16  }
17 }

感謝您的閱讀。

 回到目錄

posted @ 2012-07-10 23:47  張占嶺  閱讀(1367)  評論(3)    收藏  舉報