16

我正在尝试这样做:

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

我收到“DbArithmeticExpression 参数必须具有数字通用类型”错误。考虑到我需要 TimeSpan 的差异,我该怎么做?

提前致谢。

4

3 回答 3

27

你会想使用SqlFunctions.DateDiff

Tickets.Where(t => 
      SqlFunctions.DateDiff("second", t.Date, myTicket.Date) < 120));
于 2012-04-18T18:09:01.673 回答
4

您也可以使用它;

var result = db.Tickets.Where(t => 
       SqlMethods.DateDiffSecond(myTicket.Date ,  t.Date) < 120);
于 2016-02-03T09:07:06.350 回答
2

实体框架不支持使用 DateTime 的算术运算。您必须使用SqlFunctions 之一。因此,对于您的陈述,例如:

Tickets.Where(t => 
      SqlFunctions.DateDiff("second", t.Date, myTicket.Date) < 120));
于 2012-04-18T18:17:21.147 回答