トランザクション内で 2 つのフォームビューを更新したいと考えています。それらの1つが失敗した場合、もう1つも失敗するはずです。フォームビューには独自のエンティティ データソースがあります。
button1_click(..........)
{
formview1.updateItem(true);
formview2.updateItem(true);
}
トランザクション内で 2 つのフォームビューを更新したいと考えています。それらの1つが失敗した場合、もう1つも失敗するはずです。フォームビューには独自のエンティティ データソースがあります。
button1_click(..........)
{
formview1.updateItem(true);
formview2.updateItem(true);
}
さて、これは世界で最も単純なことではないかもしれません。
基本的な答えは、はい、あなたはそれを行うことができるということです。また、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();
}