我有一个在我们的业务下班时间运行的流程。该过程有时会在删除语句上失败。删除语句是通过实体框架执行的(我不知道这是否重要),并且还会发生级联删除。
我们得到的错误如下: Timeout expired。
在操作完成之前超时时间已过或服务器没有响应。该语句已终止。
我试图找出可能导致这种情况的原因。我发现我们同时运行了另一个进程,该进程从视图中选择发生删除的相同文件的数据。可以阅读此视图“阻止”删除吗?
public void DeletePolicySegments(IList<int> segmentIds)
{
using (Models.PolicyContainer context = new Models.PolicyContainer())
{
if (segmentIds != null && segmentIds.Count > 0)
{
foreach (var segmentId in segmentIds)
{
var x = context.PolicySegments.Where(t => t.SegmentId == segmentId).Single();
context.PolicySegments.DeleteObject(x);
}
context.SaveChanges();
}
}
}
每次调用“DeletePolicySegments”时,它应该只删除 2-4 个“段”。