Как удалить элементы из списка с тем же значением свойства, где количество больше 2 - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть список карт Джо, я хочу удалить рабочие карты, где VehicleID count больше двух

Вот моя попытка.

var OpenJobCards = await _context.WorkshopJobCards.Include(wjc => wjc.WorkshopJobCardCategory).Where(wjc => wjc.Job_Card_Closed == false).ToListAsync() ;
OpenJobCards.Remove(OpenJobCards.GroupBy(wjc => wjc.VehicleID).Count() >2);

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Исходя из вашего комментария, может показаться, что вы на самом деле смотрите на это неправильно.Если у транспортных средств есть набор рабочих карт, и ваша конечная цель - показать только транспортные средства, которым назначено менее 2 рабочих карт, просто выполните:

var vehicles = await _context.Vehicles.Where(x => x.JobCards.Count() < 2).ToListAsync();

Готово.

0 голосов
/ 18 февраля 2019

насколько я понимаю, вы используете DBContext.Если это так, пожалуйста, имейте в виду, что лучше использовать Queriable, где это возможно, чтобы фильтрация выполнялась на стороне БД и не загружалась в память вашего приложения

var listToRemove = await _context.WorkshopJobCards.Include(wjc => wjc.WorkshopJobCardCategory)
     .Where(wjc => wjc.Job_Card_Closed == false).GroupBy(wjc => wjc.VehicleID)
     .Where(t => t.Count() >2)
     .Select(x => new OpenJobCard() {Id = x.Key});

_context.entity.RemoveRange(listToRemove);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...