私が取り組んでいる MVC 3 プロジェクトは、現在のセッションの最後に行った挿入/更新呼び出しをコミット/ロールバックします。これは、複数の挿入を行っている現在を除いて、ほとんどの場合うまく機能します。
csv がサイトにアップロードされると、各レコードが解析されて DB に挿入されます。問題は、1 つのレコードの挿入に失敗した場合、以前のすべてのレコードがロールバックされ、その後のすべての試行がエラーで失敗することです。
don't flush the Session after an exception occurs
セッションごとのリクエストを無効にするにはどうすればよいですか (または、何らかの方法でトランザクションを「再開」する必要がありますか)?
詳細を編集する
リクエストごとのセッションは、IHttpModule を実装するクラスで構成されます。このクラスは、HttpApplication コンテキストと UnitOfWork クラスを受け取ります。これは、コミットとロールバックが発生する場所です。
上記の UnitOfWork は、StructureMap を使用してリポジトリに挿入されます。
私が言ったように、この動作はサイトの残りの 99% で問題ありません。要求ごとのセッションのトランザクションを無視するには、この一括更新を取得する必要があります。または、新しいレコードごとにトランザクションを手動で再開する必要があります。方法がわかりません。