У меня есть метод, который получает идентификаторы некоторых строк для удаления. Я использую такой код:
public bool delete(IEnumerable<long> paramIeId)
{
using(myContext)
{
foreach(long iterator in paramIeId)
{
nyDbContext.Remove(new MyType(){ID = iterator});
}
}
}
Он отлично работает, потому что удаляет строки, когда они существуют. Но если есть 1 или более несуществующих строк, я получаю исключение, и ни одна строка не удаляется, хотя некоторые из них существуют.
Если я выполняю этот запрос в T-SQL, у меня нет проблем, база данных удаляет существующие строки и игнорирует несуществующие строки, потому что в конце я хочу их удалить, поэтому, если другой процесс удалит их для меня, нет проблем.
Я мог бы обработать исключение оптимистичного параллелизма, обновляющее базу данных dbContextfrom, но я думаю, что это связано с выполнением дополнительных запросов, которых можно было бы избежать.
Есть ли способ, которым EF работает как T-SQL? Если я попытаюсь удалить несуществующую строку, проигнорирую ее и удалю остальные строки.
Спасибо.