私はEntityFrameworkの初心者です。私は非常に奇妙な問題に直面しています。linqtoentityクエリを使用したトランザクションを使用できません。私はDbTransactionとTransactionScopeに使用しました。クエリがヒットするとすぐにエラーが発生します。EF4.3を使用しています。コンテキストは通常どおりDbContextから派生します。私はコードファーストアプローチを使用しています。
using (TransactionScope s = new TransactionScope())
{
using(var context = new XYZContext())
{
context.Database.Connection.Open();
Int32 count = (from xyz in context.XYZs
where xyz.Name == "SameName"
select xyz.Name).Count();
Assert.AreEqual(count, 1);
}
}
疑問があります。TrasactionScopeにはパフォーマンスの問題があると聞いたので、使用したくありません。では、代わりにDbTransactionを使用するにはどうすればよいですか(エラーもスローされます)。なぜ接続を明示的に開く必要があるのですか?コンテキストを「更新」しているときに、接続が自動的に開かれるべきではありませんか?