次の方法で共有


トランザクションのサポート

LINQ to SQL では、3 つの異なるトランザクション モデルがサポートされています。 次に、これらのモデルを実行されたチェックの順序で示します。

明示的なローカル トランザクション

SubmitChangesが呼び出されると、Transaction プロパティが (IDbTransaction) トランザクションに設定されている場合、SubmitChanges呼び出しは同じトランザクションのコンテキストで実行されます。

トランザクションが正常に実行された後は、トランザクションをコミットまたはロールバックする必要があります。 トランザクションに対応する接続は、 DataContextの構築に使用される接続と一致する必要があります。 別の接続が使用されている場合、例外が発生します。

明示的な再頒布可能トランザクション

アクティブなSubmitChangesのスコープ内で LINQ to SQL API (Transactionを含むがこれらに限定されない) を呼び出すことができます。 LINQ to SQL は、呼び出しがトランザクションのスコープ内にあり、新しいトランザクションを作成しないことを検出します。 この場合、LINQ to SQL は接続を閉じないようにもします。 このようなトランザクションのコンテキストでクエリと SubmitChanges 実行を実行できます。

暗黙的なトランザクション

SubmitChangesを呼び出すと、LINQ to SQL は、呼び出しがTransactionのスコープ内にあるかどうか、または Transaction プロパティ (IDbTransaction) がユーザー開始ローカル トランザクションに設定されているかどうかを確認します。 どちらのトランザクションも見つからない場合、LINQ to SQL はローカル トランザクション (IDbTransaction) を開始し、それを使用して生成された SQL コマンドを実行します。 すべての SQL コマンドが正常に完了すると、LINQ to SQL はローカル トランザクションをコミットして返します。

こちらも参照ください