4

トランザクション内で 2 つのフォームビューを更新したいと考えています。それらの1つが失敗した場合、もう1つも失敗するはずです。フォームビューには独自のエンティティ データソースがあります。

button1_click(..........)
{
   formview1.updateItem(true);
   formview2.updateItem(true);
}
4

1 に答える 1

2

さて、これは世界で最も単純なことではないかもしれません。

基本的な答えは、はい、あなたはそれを行うことができるということです。また、updateItemメソッドがdb接続を開く場合、コードはこれに似ています。

using (TransactionScope scope = new TransactionScope())
{
    formview1.updateItem(true);
    formview2.updateItem(true);
    scope.Complete();
}

一方、updateItemが呼び出されるまでに接続がすでに開いている場合は、次のようなことを行う必要があります。

using (TransactionScope scope = new TransactionScope())
{
    formview1.Connection.EnlistTransaction(Transcation.Current);
    formview2.Connection.EnlistTransaction(Transcation.Current);
    formview1.updateItem(true);
    formview2.updateItem(true);
    scope.Complete();
}
于 2012-07-30T11:42:23.427 に答える