4

Entity Framework でトランザクションを行う方法を説明する答えがここにありますが 、ソリューションは最初にコードでは機能しません。私は実験しましたが、私のテストでは、以下が機能することが示されています

using (var scope = new TransactionScope())
{
        DBContext1.SaveChanges()
        If (ForceFailure) return 0  // used in testing
        DBContext2.SaveChanges()
        scope.Complete();
 }

ただし、SaveChanges にパラメーターを渡したり、AcceptAllChanges を呼び出したりすることがなくなったため、緊張しています。

自分のソリューションが信頼できるかどうかを確認するにはどうすればよいですか?

4

1 に答える 1

2

SaveChanges(Boolean)は一部、ObjectContextではありませんDbContext。のメソッドは推奨されていないことに注意しSaveChanges(Boolean)ObjectContextくださいSaveChanges(SaveOptions)

それでも を使用したい場合は、たとえば拡張メソッドを使用してDbContext、独自のSaveChangesメソッドをオーバーロードしてIObjectContextAdapter.ObjectContextを使用できる場合があります。

于 2013-04-10T14:11:17.343 に答える