【发布时间】:2012-01-27 11:52:32
【问题描述】:
我在程序中有如下结构:
Using transaction As New TransactionScope()
'Make some changes to the data
...
db.SubmitChanges()
'Make some other changes to the data
...
db.SubmitChanges()
transaction.Complete()
End Using
每次调用 SubmitChanges() 时,更改是否会实际保存到数据库中,还是只有 transaction.Complete() 会物理保存它们?我的意思是我不希望 1 个用户所做的中间更改对其他人可见。
【问题讨论】:
-
您可以通过在
transaction.Complete()之前设置断点来快速尝试。如果你这样做了,你可能会发现任何试图访问你更新的数据的人都不会得到任何结果,直到你调用transaction.Complete(),这取决于我相信默认序列化的隔离级别。因此我怀疑的答案是默认情况下,不,没有用户会得到中间更改,尽管可能取决于isolation levels -
查看以下链接以获得答案:stackoverflow.com/questions/542525/…
-
您只需在例行程序结束时调用一次 SubmitChanges 即可。
标签: .net linq linq-to-sql transactions