Мне нужна помощь со сложным запросом в EF.
Что я пытаюсь сделать:
Для каждого пользователя в списке получить список первого и последнего события для каждогодень из таблицы со следующей структурой:
Events table:
int EventId
int UserId
DateTime Time
...other fields
Users table:
int UserId
string Name
...other fields
Что я сейчас делаю:
- получение списка пользователей, которые меня интересуют
- для каждого пользователя получите все события за месяц
- итерация по событиям для выбора первого и последнего события для каждого дня.
Это довольно неэффективно и требует много времени.Я думаю, что я мог бы сделать:
Выберите минимальное и максимальное события из месяца, сгруппированные по UserId, сгруппированные по Дню, так что конечный результат будет выглядеть так:
EventId UserId Time
345 4 9:00:00 18.03.2019 //first event from 18.03
456 4 18:20:00 18.03.2019 //last event from 18.03
465 4 10:40:00 19.03.2019 //first event from 19.03
477 4 19:23:00 19.03.2019 //first event from 19.03
360 9 11:05:00 18.03.2019 //same, for different user
440 9 17:10:00 18.03.2019
466 9 10:57:00 19.03.2019
501 9 20:48:00 19.03.2019
Мне нужночтобы сделать это с помощью структуры лица, в .Net