Entity Framework 7でトランザクションをロールバックする方法はありますか。古いバージョンでEntity Framework 7ロールバックメソッド
、我々は今、私は
"EntityFramework.Commands" を使用
try { dataContext.ChangeTracker.DetectChanges(); dataContext.SaveChanges(); } catch (Exception e) { dataContext.Database.CurrentTransaction.Rollback(); Debug.WriteLine(e.Message); }
を持っている: "7.0.0-RC1-ファイナル"
それはdoesnのを方法はありません。
しかし、SaveChangesメソッドは、カバーの下のトランザクションですでに実行されます。
またEF7は(EF6ない)非同期APIを提供します。したがって、SaveChangesが失敗した場合、そのトランザクションはロールバックされます。 – Evk
@Evkは、古いEFでは、 'SaveChanges'がトランザクションの失敗をカバーしていますか?もしそうなら、「ロールバック」メソッドが発明されたのはなぜですか? –
私が知っている限り、それは常にトランザクションでラップされました。なぜロールバックがあるのかについては、dataContext.Database.BeginTransaction()を使って明示的にトランザクションを開始することができます。たとえば、SaveChangesを複数回呼び出すことができます。ロールバックしたい場合は、ロールバックを呼び出す必要があります。 – Evk