私はasp.net MVC Webアプリケーションを実装しています。ここでは、データベースのデータを操作するためにLinq to Sqlを使用しています。私の行動では、私は以前の挿入IDを参照することによってお互いに依存する複数のテーブルエントリを挿入したい。だから私はちょうどトランザクションを処理する方法を知っているwnat開始トランザクション、コミット、ロールバック、すべてのADO.netのような。これを管理する方法。操作の途中で挿入がクラッシュするとどうなりますか?LinqのトランザクションをSQLに処理する
注: - 私はここでストアドプロシージャを使用していません。私はラムダ式とメソッドを使用しています。また、これらは異なるマネージャクラスで使用されます。 例: 作成の場合SubjectImageを挿入するSubjectManagerクラスのSubject-usedメソッドで、Subject Idが返されます。このsubjectidの中で、私はチャットマネージャークラスの別のメソッドでChapterManagerを挿入しています。このチャペルIDの基底に章のトピックを挿入してチャプターIDを返します。これは、上記のようなTopic Managerを同じく使用しています。それぞれのmangerクラスで、同じもののdataContextオブジェクトを作成しています。私はコントローラ内の単一のアクション内でこれをすべて制御しています。トランザクション管理については心配しています。私はここでどのように使うことができますか?
ありがとうございます、データ操作全体でうまくいくのでしょうか? –
はい、TransactionScope内のすべてがトランザクションにラップされます。注意する必要があるのは、datacontextだけです。私はあなたが範囲内に1つだけ持つことができると思います。もう少し情報を表示するようにコードを更新します。 –
同じDataContextブロック内で複数のSubmitChangesを呼び出すときに問題が発生します。組み込みチェンジ・トラッキング・メカニズムは、変更が行われた後にオブジェクトを更新しないため、変更が行われた後にデータの整合性を保証することはできません。 –