IDocumentSession.SaveChanges() 与事务

发布于 2024-12-16 01:49:54 字数 203 浏览 0 评论 0原文

在调用 SaveChanges 之前,raven 客户端 (IDocumentSession) 不会向服务器发送任何内容。所以它可以被视为一个 UnitOfWork 实现,对吗?

我是否正确地认为 SaveChanges 和 Transaction.Commit 之间的唯一区别是,如果提交期间出现失败,后者会回滚所有更改?

The raven client (IDocumentSession) doesn't send anything to the server until SaveChanges is called. So it could be considered as a UnitOfWork implementation, right?

Am I correct in thinking that the only difference between SaveChanges and Transaction.Commit is that the latter rolls back all changes if something failed during the commit?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓝眸 2024-12-23 01:49:54

如果您执行单个操作,则无需使用显式事务,因为 SaveChanges 会导致隐式事务。

如果您使用System.Transactions,则可以执行多个操作,即使用同一事务执行多个SaveChanges。 Raven 将使用请求标头通过 http 管理事务。

在文档中阅读更多内容:http://ravendb.net/documentation/docs-api-transactions

If you are doing a single operation, there is no need to use an explicit transaction since the SaveChanges results in a implicit transaction.

If you make use of System.Transactions, you can perform multiple operations, ie multiple SaveChanges using the same transaction. Raven will manage the transactions over http using a request header.

Read more in the docs: http://ravendb.net/documentation/docs-api-transactions

空城缀染半城烟沙 2024-12-23 01:49:54

SaveChanges() 在事务中操作,因此如果您正在修改多个文档,则所有文档都将被保存,或者都不保存。
还支持System.Transactions,但通常不需要。

SaveChanges() operate in a transaction, so if you are modifying multiple documents, all of them would be saved, or none would.
Also support System.Transactions, but usually it is not needed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文