【发布时间】:2011-04-23 03:30:08
【问题描述】:
aspx.cs 代码: 代码本身很大,这里的代码是虚构的,但它看起来(重要的部分)是这样的:
foreach (Transaction trans in vTransactionList)
{
switch (trans)
{
case 201: codehere; break;
case 202: codehere; break;
case 203:
vProcesso.MarcaEnvioServico(
trans.ProcessId,
trans.CodTrans);
break;
}
}
业务类方法:
RENDataContext db = new RENDataContext();
Processo update = tabela.SingleOrDefault(
x => x.CodTrans == pCodTrans);
update.SentDate= DateTime.Now;
update.ProcessId = pProcessId;
update.LogUsuario = pUsuario_Id;
update.LogVersaoRegistro = servico.LogVersaoRegistro + 1;
update.LogDataAlteracao = DateTime.Now;
db.SubmitChanges();
有时(在执行此代码时,我经常收到此错误(sqlserverexception):“服务器无法恢复事务。”同样,它只是随机的,有时它执行,有时它不执行。当它首先失败时在一段时间内一直失败。
我使用存储过程而不是那个 LINQ 代码来更新表,并且发生了同样的问题。
【问题讨论】:
-
什么是 vCodTrans ... 它应该是反式的吗?
标签: c# asp.net linq sql-server-2008 .net-3.5