【发布时间】:2014-02-25 07:11:46
【问题描述】:
我有一个许多用户在任何特定时刻都使用的 Web 应用程序。从数据库的角度来看,当他们在系统中移动时,他们会不断地从任意数量的表中写入和读取数据。此外,我们还有许多将数据导入该系统的流程。
今天,在调试导入过程时,我的代码在事务处理过程中因异常而停止。几乎立即我开始收到系统中用户查询失败的报告。不知何故,我将我的操作与它联系起来,点击继续,突然查询又开始工作了。
简而言之,我认为我设置交易的方式是造成这种情况的原因,但我不太了解它的影响,无法解决它。
我需要一个事务,以便在出现任何问题时回滚它,但它似乎在作用域处于活动状态或“挂起”时锁定了数据库。有没有办法可以改变它以防止我看到的问题?
using (TransactionScope scope = new TransactionScope(
TransactionScopeOption.Required,
System.TimeSpan.MaxValue))
{
using (var context = new EntityContext())
{
//lots of write operations in here
}
}
【问题讨论】:
标签: c# sql transactions