Не удается получить следующую дату встречи с помощью запроса Linq - PullRequest
0 голосов
/ 13 октября 2019

Мне нужно отобразить дату следующего собрания из таблицы дат собраний. Как только дата переходит в текущую, должна появиться следующая дата. Я искал похожие примеры, но не повезло:

05/21/2019

07/11 / 2019

08/08/2019

09/12/2019

10/10/2019

11/14/2019

12/12/2019

Здесь запрос Linq у меня естьчто не получается. Это ничего не возвращает, например, после даты 10.10.2009, потому что 14.11.2009 фактически больше 1 месяца.

var LinqResult = (from c in _context.MeetingSchedule
                 where c.MeetingDate.Date >= DateTime.Now.Date && c.MeetingDate.Date <= DateTime.Now.Date.AddMonths(1)
                  select new { c.Location, c.MeetingDate, c.MeetingTime }).ToArray();

if (LinqResult.Any())
{
  //SEND NEXT MEETING DATE BACK VIA VIEWSTATE
}

Кроме того, я почти уверен, что произойдет что-то странноев последний месяц года после встречи (декабрь). Я пытаюсь показать текущее следующее собрание и перевести его на следующее собрание после того, как текущее собрание закончится. Добавление месяца к 12 создаст месяц с номером 13, которого не существует.

1 Ответ

1 голос
/ 13 октября 2019

После сортировки дат, которые уже произошли, вы можете отсортировать расписание встреч по возрастанию, а затем просто захватить первое.

var LinqResult = (from c in _context.MeetingSchedule
                  where c.MeetingDate.Date >= DateTime.Now.Date
                  orderby c.MeetingDate.Date
                  select new { c.Location, c.MeetingDate, c.MeetingTime }).ToArray();

if (LinqResult.Any())
{
  //SEND NEXT MEETING DATE BACK VIA VIEWSTATE
}
...