tomgif
@tomgif
Веб-разработчик

Как разбить запись на интервалы по дням?

Есть таблица Competitions
| Id | DateFrom | DateTo |
| 1 | 2024-04-25 00:00:00 | 2024-04-28 00:00:00 |

А также таблица Sections в которой есть внешний ключ CompetitionId
| Id | Name | Date | CompetitionId |
| 1 | Событие 1 | 2024-04-25 00:00:00 | 1 |
| 3 | Событие 2 | 2024-04-27 00:00:00 | 1 |

Есть ли возможность разбить запись на периоды по дням средствами EF:
2024-04-25 00:00:00
2024-04-26 00:00:00
2024-04-27 00:00:00
2024-04-28 00:00:00
Даже если период не будет содержать записей.

На данный момент реализовал следующее:
Competition.Sections.GroupBy(x => x.Date)
  .Select(unit => new Unit() {
    Name = unit.First().Date.ToShortDateString(),
    Date = unit.First().Date,
    Sections = unit.ToList()
}).OrderBy(unit => unit.Date) .ToList();


Данная выборка возвращает сгруппированные по дням события, но не возвращает дни без событий, т.е. отсутствуют записи 2024-04-26 и 2024-04-28. Как получить все дни из интервала, а также прикрепить к ним события?
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
ну допустим можно сделать заготовку выхлопа с разбиением по всем датам.
потом сделать слияние с результатом запроса (там где нет событий, будут пустоты..
поиграть с linq, по получении желаемого выхода, возможно сами успешно модифицируете запрос
ps
.. или дополните нужным конструктом
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы