【发布时间】:2014-06-11 15:53:32
【问题描述】:
我的数据库中有一个表正在定期清理。我正在获取需要删除的项目列表,然后遍历它们以将它们从数据库中删除。问题是某些删除将违反外键约束。这很好,我只想忽略这些项目并继续前进。问题是一旦失败,它就会卡在数据上下文的删除队列中,我无法继续。根据我的研究,您似乎不能只清除 .NET 4 中的删除队列。删除失败后我该如何继续?
using (DataContext dc = new DataContext())
{
List<Item> removedItems = dc.Items.Where(o => o.Removed).ToList();
foreach (Item item in removedItems)
{
try
{
dc.Items.DeleteOnSubmit(item);
dc.SubmitChanges();
}
catch { }
}
}
【问题讨论】:
-
我不确定它是否有效,但请尝试添加“继续;”在你的 catch 块中声明,所以它会在发生违规异常时处理下一项。
标签: c# linq datacontext