2011-11-17 15 views
5

レンブラクライアント(IDocumentSession)は、SaveChangesが呼び出されるまでサーバーに何も送信しません。したがって、UnitOfWork実装と見なすことができます。IDocumentSession.SaveChanges()とトランザクション

は、私は何かがコミット時に失敗した場合SaveChangesTransaction.Commitの唯一の違いは、バック後者のロールというすべての変更であることを考えるに修正アム?

答えて

7

単一の操作を実行している場合、SaveChangesが暗黙的なトランザクションになるため、明示的なトランザクションを使用する必要はありません。

System.Transactionsを使用する場合は、同じトランザクションを使用して複数の操作、つまり複数のSaveChangesを実行できます。 Ravenは、リクエストヘッダーを使用してhttp経由でトランザクションを管理します。ドキュメント内

読む:http://ravendb.net/documentation/docs-api-transactions

+0

Kul med andra svenska RavenDb nissar;)(コメントはあまり言わない、あなたがスウェーデン人でなければ無視する) – jgauffin

6

jgauffin、 のSaveChanges()がトランザクションで動作するので、あなたが複数のドキュメントを変更している場合は、それらのすべてが保存され、またはnone希望されるだろう。 また、System.Transactionsもサポートしていますが、通常は必要ありません。

関連する問題