データベースのフロント エンドの作成に問題があります。データベースからの EF6 Code First から始めました。コントローラーを作成し、作成ページでテストを実行しましたが、大きな問題が発生しました。次のエラーが表示されました。
System.Data.SqlClient.SqlException: Transaction failed in database 'DB' because the statement was run under snapshot isolation but the transaction did not start in snapshot isolation. You cannot change the isolation level of the transaction to snapshot after the transaction has started unless the transaction was originally started under snapshot isolation level.
他に表示されたのは、コントローラーからのコードです。
if (ModelState.IsValid)
{
db.Characters.Add(character);
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
await db.SaveChangesAsync(); が強調表示されました。エラー行として。そのため、MVC コードのトランザクション レベルを変更するためにどこを見ればよいのか混乱しています。Web.config、データベース用に作成されたモデル、またはコントローラーのいずれでしょうか? 変更するには TransactionScope を使用する必要があることはわかっています。
デフォルトのトランザクション スコープをデータベースの設定対象に変更する方が簡単です。その変更をどこで行うべきかわかりませんか?