【发布时间】:2012-02-20 11:08:19
【问题描述】:
我在我的 Web 应用程序中实施了以下冲突管理解决方案:
Using transaction As New TransactionScope()
Do
Try
' Make changes to the data'
db.SubmitChanges()
transaction.Complete()
' Exit the loop when no conflicts occurred'
Exit Do
Catch conflictEx As ChangeConflictException
For Each prob As ObjectChangeConflict
In manager.db.ChangeConflicts
prob.Resolve(
RefreshMode.OverwriteCurrentValues)
Next
End Try
Loop
End Using
本质上,如果其他人在数据仍在处理时快速更改数据,程序应该重新读取所有数据并从头开始重新计算更改。
但我无法找到任何方法来测试此冲突管理解决方案。我尝试在 transaction.Complete() 之前设置断点并在 Visual Studio 中修改表数据,但是在设置断点时它一直显示超时错误。
还有其他可靠的测试方法吗?
添加:还尝试插入 Thread.Sleep(10000) 调用并更改 VS 中的数据 - VS 查询似乎会冻结,直到线程睡眠调用完成。
【问题讨论】:
标签: .net vb.net linq linq-to-sql conflict