どこかで備忘録的に残してたはずなのに失くしたので、再度書き溜めておく。
過去経験として、こんなことがあった。
- 既存フロントがaccdb。
- DBがaccdb。
- 新たにUWPアプリを構築する。
- UWPはSQLServerのリンクサーバーによりaccdbを操作可能にする。
これで何も考えないでEntityFramework.Coreを使ってSaveChanges()すると、利用されるDBはあくまでACCESSファイルのため、トランザクション発行が正しく行えずエラーになる。
それを回避するために、下記をコードすることで、DbContext.SaveChanges()でトランザクションを利用しないようにする。
accdbを操作するDbContextクラス内のコンストラクタとかに記述すればいい。
Database.AutoTransactionsEnabled=false;