Есть ли у кого-нибудь представление о том, как выполнить следующий оператор с помощью LINQ?
UPDATE FileEntity SET DateDeleted = GETDATE() WHERE ID IN (1,2,3)
Я прихожу и к любви, и к ненависти к LINQ, но пока мало что не получалось хорошо. Очевидное решение, которого я хочу избежать, - это перечислить все файловые объекты и установить их вручную.
foreach (var file in db.FileEntities.Where(x => ids.Contains(x.ID)))
{
file.DateDeleted = DateTime.Now;
}
db.SubmitChanges();
Проблема с вышеприведенным кодом, за исключением значительных издержек, состоит в том, что у каждого объекта есть поле данных, которое может быть довольно большим, поэтому при большом обновлении большое количество данных проходит через соединение с базой данных без особой причины. (Решение LINQ заключается в отсрочке загрузки свойства Data, но в этом нет необходимости, если есть какой-то способ просто обновить поле с помощью LINQ to SQL).
Я думаю, что какой-то провайдер выражений запросов может привести к приведенному выше T-SQL ...