当我们上周五发布时,我收到了一个我没有接受的错误。错误信息是:
could not execute update query[SQL: delete from dbo.MyTable where col1=? and col2=? and col3=? and col4=? and col5=?]
我的 C# 代码如下:
var hqlDelete = "DELETE MyTable m WHERE m.Col1 = :var_1 AND m.Col2 = :var_2 AND m.Col3= :var_3 AND m.Col4 = :var_4 AND m.Col5= :var_5";
var deletedEntities = session.CreateQuery(hqlDelete)
.SetString("var_1", variable1)
.SetString("var_2", variable2)
.SetString("var_3", variable3)
.SetString("var_4", variable4)
.SetString("var_5", variable5)
.ExecuteUpdate();
transaction.Commit();
session.Close();
现在,正如我所说,在接受测试时没有触发错误。此外,当我使用生产数据库(来自我的开发人员座位的代码)进行测试时,它也可以正常工作。
当我调用 Web 服务并向其发布“测量”时会触发代码。唯一的区别是我在测试时调用该服务,而在生产中,另一家公司将测量结果发送到 Web 服务。
我认为这可能与会话/交易的数量有关,但这并不能真正解释为什么变量会像?
错误消息中那样显示。
有任何想法吗?我可以提供更多信息,以便您可以帮助我吗?
编辑:InnerExeption 是
{"Transaction (Process ID 68) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction."}