汎用 DAO からメソッドを継承するこの特定の DAO があります。例外が見つかった場合に行われたすべての変更をロールバックするために、このコードにトランザクションを追加したいと思います。
TDAO tDAO = new TDAO();
TDAO2 tDAO2 = new TDAO2();
//Get the DAO to delete from the database let's call them dDao and dDao2
//Start the Transaction
using (TransactionScope trans = new TransactionScope())
{
try
{
//Delete all SGC Associated switch
TDAO2.Delete(dDao);
//Delete switch
TDAO.Delete(dDao2);
//send notification
base.SendChangeNotification();
//Commit the Information Completing the Transaction
trans.Complete();
}
catch (UpdateException ex)//SQL exception
{
//Log the error
//Rollback the changes if there is an exception
throw new Exception(Resources.ErrorMessages.OperationNotPermited);
}
catch (Exception ex) //Other exception
{
//Log the error
throw new Exception(Resources.ErrorMessages.UndifenedError);
}
}
Visual Studio で、プロジェクトの [参照] アイコンに移動します。右クリック、参照の追加。次に、System.Transactions.dll を検索します。それを選択し、[OK] をクリックします。次に、プロジェクトを再構築してみてください。また、Using System.Transactions; のように、Using ステートメント (C#) または Imports ステートメント (VB) が一番上にあることを確認してください。
変更点はコードにあります。ありがとうございました