close

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

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

2008-12-05_141440

 

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

2008-12-05_141940

 

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

2008-12-05_142002

 

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

2008-12-05_142026

 

產生出來的類別如下。

2008-12-05_142044

 

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

3個TextBox:FNameTextBox、LNameTextBox、SalaryTextBox

1個Button:AddBtn

1個GridView:EmployeeGridView

2008-12-05_143320

 

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

2008-12-05_143210

 

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

2008-12-05_143234

 

資料表選擇Employee。

2008-12-05_143256

 

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

2008-12-05_142720

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

2008-12-05_142539

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

2008-12-05_143504

 

執行,但出現下列畫面。

2008-12-04_192424 

 

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

2008-12-04_192032

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

2008-12-04_192619 

 

再執行一次,非常順利。

2008-12-05_143811

 

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

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

2008-12-05_143912

 

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

2008-12-05_144310

 

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

2008-12-05_144452 

 

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

arrow
arrow
    全站熱搜

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