Как написать запрос удаления диапазона по списку id, без создания сущностей которые требуются в RemoveRange?
Если работаете с БД через Энтити, то мое решение не подойдет.
Давайте вдарим по функциональщине - не будем удалять ничего из исходной коллекции, а просто заместим ее новой коллекцией без ненужных элементов:
var range = new List<int> {1, 2, 3, 3, 4, 5, 6, 78, 8}; //идэшники которые нужно удалить
//коллекция из которой будем удалять, если вы под id имели в виду индекс элемента
var collection = Enumerable.Range(0, 100).ToList(); //здесь мы просто создаем коллекцию, у вас она уже есть
collection = collection.Where((x,i)=> !range.Contains(i)).ToList(); //а вот самая мякотка здесь
//в случае если id - это поле некоторого объекта коллекции которую
//мы хотим почистить
var collection2 = Enumerable.Range(0, 100)
.Select(x=> new {Id = x, Value=x*10})
.ToList();
// то будет так:
collection2 = collection2.Where(x => !range.Contains(x.Id)).ToList();
В случае Entity Framework вроде иного способа нет:
db.SomeTable.RemoveRange(db.SomeTable.Where(r => IDs.Contains(r.ID)));
По идеи объекты в параметрах не создаются - просто все дерево транслируется в SQL - так что не надо беспокоится на этот счет.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости