2011-11-17 46 views
5

在調用SaveChanges之前,烏鴉客戶端(IDocumentSession)不會向服務器發送任何內容。所以它可以被認爲是一個UnitOfWork實現,對吧?IDocumentSession.SaveChanges()vs Transactions

我正確地認爲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()在一個事務中運行,所以如果你修改了多個文件,所有的人都將被保存,或者什麼都不會。 我們也支持System.Transactions,但通常不需要。

相關問題