SQL Server プロファイラーによるプロファイリング: EF 6 は、すべてのストアド プロシージャ呼び出しをBEGIN TRAN
andでラップしCOMMIT TRAN
ます。
重大な変更ではありませんか?
おそらくこれは重大な変更であるだけでなく、ストアド プロシージャでトランザクションをロールバックできないROLLBACK TRAN
ため (注: SQL Server にはネストされたトランザクションはありません)、SP でトランザクション ロジックを不可能にするため、1 回のロールバックで@@TRANCOUNT
ゼロにロールバックします。EF 6 のためにトランザクションを行っていたため、「EXECUTE 後のトランザクション カウントは、BEGIN ステートメントと COMMIT ステートメントの数が一致していないことを示しています。前のカウント = 1、現在のカウント = 0」を取得しました。標準の SQL Server エラーです。
ストアド プロシージャを呼び出す理由を聞かないでください。私は何百も持っていますが、それらはすべてTRY ... COMMIT ... CATCH ROLLBACK
ロジックを使用しています。
どうすればEF 6がこれを行うのを防ぐことができますか?