Linq: разница между 2 DateTimes в TimeSpan - программирование
Подтвердить что ты не робот

Linq: разница между 2 DateTimes в TimeSpan

Я пытаюсь сделать это:

Tickets.Where(t => (t.Date - myTicket.Date) < TimeSpan.FromSeconds(120));

Я получаю сообщение об ошибке "DbArithmeticExpression должен иметь ошибку числового общего типа". Как я могу это сделать, учитывая, что мне нужна разница в TimeSpan?

Спасибо заранее.

4b9b3361

Ответ 1

Вы хотели бы использовать SqlFunctions.DateDiff

Tickets.Where(t => 
      SqlFunctions.DateDiff("second", t.Date, myTicket.Date) < 120));

Ответ 2

Вы также можете использовать это:

var result = db.Tickets.Where(t => 
       SqlMethods.DateDiffSecond(myTicket.Date ,  t.Date) < 120);

Ответ 3

Арифметика с DateTime не поддерживается в Entity Framework. Вы должны использовать один из SqlFunctions. Итак, для вашего утверждения, что-то вроде:

Tickets.Where(t => 
      SqlFunctions.DateDiff("second", t.Date, myTicket.Date) < 120));