Как мне искать записи между двумя датами с помощью Entity Framework? [Дубликат]

Попробуйте эти две вещи отдельно и вместе:

  1. удалите if($_POST['submit']){}
  2. remove $from (только моя кишка)
4
задан marc_s 26 May 2016 в 05:48
поделиться

1 ответ

Это потому, что вы пытаетесь добавить DateTime с TimeSpan, что запрещено. Для этого попробуйте использовать нечто вроде DateTime.AddSeconds(TimeSpan.TotalSeconds):

var list= dbContext.Events
           .Where(e=>e.EndDate.AddSeconds(e.EndTo.TotalSeconds) > DateTime.Now)
           .ToList();

Или если это LINQ to Entities:

var list= dbContext.Events
           .Where(e=>EntityFunctions.AddSeconds(e.EndDate, e.EndTo.TotalSeconds) > DateTime.Now)
           .ToList();

Edit:

Поскольку ваш e.EndTo является Nullable<TimeSpan>, вы должны использовать его Value:

var list= dbContext.Events
           .Where(e=>e.EndDate.AddSeconds(e.EndTo.Value.TotalSeconds) > DateTime.Now)
           .ToList();

или

var list= dbContext.Events
           .Where(e=>EntityFunctions.AddSeconds(e.EndDate, e.EndTo.Value.TotalSeconds) > DateTime.Now)
           .ToList();
3
ответ дан Ian 20 August 2018 в 21:37
поделиться
  • 1
    Ошибка: 'System.Nullable & lt; System.TimeSpan & gt;' не содержит определения для «TotalSeconds» и никакого метода расширения «TotalSeconds», принимающего первый аргумент типа «System.Nullable & lt; System.TimeSpan & gt;»; (вы не указали директиву использования или ссылку на сборку?) – M.Nabeel 26 May 2016 в 05:33
  • 2
    я получаю те же ошибки с обеих попыток – M.Nabeel 26 May 2016 в 05:38
  • 3
    @ M.Nabeel ах, поэтому ваш e.EndTo является Nullable TimeSpan, в этом случае попробуйте использовать e.EndTo.Value.TotalSeconds вместо этого – Ian 26 May 2016 в 06:02
  • 4
    Человек Thanx для меня: P :) – M.Nabeel 26 May 2016 в 06:22
  • 5
    @ M.Nabeel не проблема! ;) – Ian 26 May 2016 в 06:37
Другие вопросы по тегам:

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