最近毎日 ASP.NET MVC4 でWebアプリケーションを作っている。 今まで独自のO/Rマッパを使っていたので Entity Framework を使い出したのは実はごく最近。 これでSQLを書かなくてもデータの取得や更新が簡単に出来る様になったのは嬉しいのだけれど、当然ストアドプロシージャを呼んだり自分で書いたSQL文を実行したりしたいという場面も結構ある。 そこでいくつかのDBアクセスのパターンを試していて、独自SQLの実行とDbContext経由でのデータ更新を同一のトランザクション内で行いたい、という場合にちょっと困ったので対処方法をメモしておきたい。 とりあえず問題ない例 上の例では別のContextを使っているのでこれはエラーにはならない。 ただしこれだと1つめの更新処理と2つめの更新処理を同一のトランザクション内で実行出来ない。 問題になる例 上の例の様にDbConte
![ASP.NET MVCでDbContextのトランザクションと独自SQL 処理のトランザクションを同一のスコープにする](https://cdn-ak-scissors.b.st-hatena.com/image/square/2861def49665f9e463a7800b5c3afe40bc413cc2/height=288;version=1;width=512/https%3A%2F%2Fblogger.googleusercontent.com%2Fimg%2Fb%2FR29vZ2xl%2FAVvXsEjJ-SqvJHvkeJzD95zjqqdCDAF2NGJbY33Tf8Vtu4tjqoj11ehsRCeHm3JZK3NZG51mXwf75k85bczII-qShhuChpu0ud8MqCUWDiQ7le0EvB-GPRDHZyxcsCMm1CpOB4PUeA1P%2Fw1200-h630-p-k-no-nu%2FEFTransactionError1.png)