У нас есть таблица с самостоятельной ссылкой, и некоторые строки необходимо удалить.Я удаляю ссылку перед удалением строк, но она очень и очень медленная.Поскольку необходимо удалить тысячи строк, мне нужен более быстрый способ.
Я пытался переместить SubmitChanges за пределы цикла, но это не так быстро.Я проверил, что запрос на получение строк для удаления не является проблемой.
public void ClearOldRunStops()
{
List<RunStop> runStops = db.RunStops.Where(a => a.shiftstarttime < DateFunctions.UtcNow().AddDays(-15) && a.status == RunStopStatus.Deleted.ToString()).ToList();
for (int counter = 0; counter < runStops.Count; counter++)
{
//remove any RunStop self-links before row deletion
for (int counter2 = 0; counter2 < runStops[counter].RunStops.Count; counter2++)
runStops[counter].RunStops[counter2].runstopid = null;
db.RunStops.DeleteOnSubmit(runStops[counter]);
db.SubmitChanges();
}
}