.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這次就先到這結束,之後還會有相關的文章~~
留言列表