С# сущность framework 6 -How, чтобы получить счет из DbSet.RemoveRange Method

103
11

Как получить счетчик из метода DbSet.RemoveRange? Когда я пытаюсь использовать Count() он выдает ошибку при сохранении изменений

_dbFileManagementRepository.FileManagements.RemoveRange(_dbFileManagementRepository.FileManagements.Where(x => x.Id == serviceId && x.DateAdded < purgeDate)).Count();
_dbFileManagementRepository.SaveChanges();

Когда я назначаю его так, то ничего не удаляется при сохранении изменений

var records = _dbFileManagementRepository.FileManagements.RemoveRange(_dbFileManagementRepository.FileManagements.Where(x => x.Id == serviceId && x.DateAdded < purgeDate));
int purgeCount = records.Count();
_dbFileManagementRepository.SaveChanges();

Когда я просто запускаю это, он просто удаляет:

_dbFileManagementRepository.FileManagements.RemoveRange(_dbFileManagementRepository.FileManagements.Where(x => x.Id == serviceId && x.DateAdded < purgeDate));
_dbFileManagementRepository.SaveChanges();

спросил(а) 2021-01-14T00:10:48+03:00 1 неделя назад
1
Решение
73

С RemoveRange вам нужны два запроса, независимо от того, что вы делаете, поэтому это должно быть хорошо для вашего дела:

var toBeRemoved = _dbFileManagementRepository.FileManagements.Where(x => x.Id == serviceId && x.DateAdded < purgeDate).ToList();
var removedCount = toBeRemoved.Count;
_dbFileManagementRepository.FileManagements.RemoveRange(toBeRemoved);
_dbFileManagementRepository.SaveChanges();

ответил(а) 2021-01-14T00:10:48+03:00 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема