TransactionScope如何处理多个查询?

时间:2011-12-30 09:29:04

标签: .net transactionscope

我正在使用TransactionScope,然后将数据保存在数据库中。

在数据保存后的同一事务中,我正在更改发送到保存的对象的值。

现在我的问题是:它会保存更改的数据吗?转换是如何工作的(在每次调用时保存数据库中的数据,还是在transactionObject.Commit()调用后保存数据)?

2 个答案:

答案 0 :(得分:0)

只有在您拨打transactionObject.Commit()时才会保存数据。即使您更改了保存的对象,它也不会反映更改,除非您再次保存该对象。

答案 1 :(得分:0)

我认为TransactionScope应该使用Complete方法提交数据(参见this article)。 请阅读this MSDN article

它声明:

  

这只是向交易经理通知您的状态的一种方式。调用此方法后,您无法再通过Current属性访问环境事务,并且尝试这样做会导致抛出异常。

  

如果TransactionScope对象创建了事务,则资源管理器之间的实际提交工作发生在End Using语句中。如果它没有创建事务,只要Committable由CommittableTransaction对象的所有者调用,就会发生提交。

但是,最简单的方法是在特定情况下使用示例代码进行检查;)。