Получение последнего результата из базы данных для каждого идентификатора в списке в Entity Framework Core - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть список пользователей, и я хочу найти последние результаты для каждого пользователя.id в списке - int, id в таблице базы данных - long.

Мне нужно проверить 2 столбца.

Я могу получить это с помощью foreachоператор в списке, но этот метод слишком медленный, и я думаю, что это можно сделать с гораздо лучшим углом.

Я посылаю идентификатор и вызываю функцию:

var result = await _context.UserData
                           .OrderBy(a => a.id== id && a.Deleted == 0 && a.AccessType== 0)
                           .FirstOrDefaultAsync();

Это работаетно это слишком медленно.

1 Ответ

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

Это работает, но я не хочу получать его по дате, это возвращает много результатов, я просто хочу один результат для каждого пользователя и последнюю запись в таблице для соответствующего идентификатора

var result =  (from u in Users join p in _context.UserData.Where(z=>  z.Deleted == 0 && z.AccessType == 0 && z.Data>=DateTime.Now.AddDays(-1)) on u.userID equals p.userID
                 into gj from x in gj.DefaultIfEmpty()
                  select new {
                     userID = u.userID, 
                     InOut = x?.InOut
                 } ).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...