«Стандартный» способ в соответствии с документами MSDN состоит в том, чтобы использовать эти идентификаторы для извлечения каждого из объектов, а затем удалить их с помощью команды DeleteObject:
context.Where(x=>ids.Contains(x.Id)).ToList().ForEach(context.DeleteObject);
Это даст N + 1 циклических переходовв БД.Это распространенный недостаток ORM;они отлично справляются с 99% ежедневного использования SQL приложением (запрашивая результаты, создавая / обновляя / удаляя отдельные объекты), но на самом деле не предназначены для этих массовых операций.
Вы также можете создать запросиспользуя ExecuteStoreCommand, где вы "DELETE FROM table WHERE id IN @p1"
и указываете список идентификаторов в качестве параметра.