Задать вопрос
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. Как получить все дни из интервала, а также прикрепить к ним события?
  • Вопрос задан
  • 106 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
ну допустим можно сделать заготовку выхлопа с разбиением по всем датам.
потом сделать слияние с результатом запроса (там где нет событий, будут пустоты..
поиграть с linq, по получении желаемого выхода, возможно сами успешно модифицируете запрос
ps
.. или дополните нужным конструктом
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы