2016-03-22 13 views
0

DbSet.RemoveRangeメソッドからカウントを取得するにはどうすればよいですか?私はCount()を使用しようとすると、それはエラーをスロー省がC#エンティティフレームワーク6 - DbSet.RemoveRangeメソッドからカウントを取得する方法

_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(); 

を変更罰金:

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

答えて

1

は、次の2つのクエリあなたがどんなにを必要とするので、これはあなたのケースのために罰金する必要があります:

var toBeRemoved = _dbFileManagementRepository.FileManagements.Where(x => x.Id == serviceId && x.DateAdded < purgeDate).ToList(); 
var removedCount = toBeRemoved.Count; 
_dbFileManagementRepository.FileManagements.RemoveRange(toBeRemoved); 
_dbFileManagementRepository.SaveChanges(); 
関連する問題