.NET 3.5發佈後,新增了一個TransactionScope這個物件,大大簡少Transaction的程式碼,尤其加上Entity Framework更是省了不少工夫,下面就簡單示範利用Entity Framework搭配TransactionScope。

新增一個Web專案,命名為TransactionWebApplication。

 

然後新增一個實體資料模型。

 

選擇前幾篇文章所用的資料庫。

 

選擇Department以及Employee這兩個資料表。

 

產生出來的類別如下。

 

之後在Default.aspx上新增下列元件:

3個TextBox:FNameTextBox、LNameTextBox、SalaryTextBox

1個Button:AddBtn

1個GridView:EmployeeGridView

 

然後設定GirdView,在上面顯示Employee這個資料表。

 

選擇一開始加入的實體資料模型。

 

資料表選擇Employee。

 

之後新增參考,把System.Transaction加進來。

然後打開Default.aspx.cs,加入這一行。

在Button上新增一個方法,要注意的是,新增一筆資料後,必須執行TransactionScope物件的Complete方法,整個交易才算完成。

 

執行,但出現下列畫面。

 

 

喔~原來是DTC沒開,打開服務管理員,把DTC開啟。

或是在Command Mode下執行下列指令。

 

 

再執行一次,非常順利。

 

接下來示範交易失敗時,會發生什麼事。

將前面的程式碼做一些修改。

 

執行畫面如下,雖然網頁有輸出例外訊息,但剛剛輸入的資料還是留在資料庫?

 

不過重新整理網頁後,剛剛的資料已經不在了,代表前面已經有做Roll Back的動作。

 

 

關於Transaction這次就先到這結束,之後還會有相關的文章~~

文章標籤
全站熱搜
創作者介紹
創作者 卑微研究生 的頭像
卑微研究生

卑微研究生的部落格

卑微研究生 發表在 痞客邦 留言(1) 人氣(933)