我正在尝试这样做:
Tickets.Where(t => (t.Date - myTicket.Date) < TimeSpan.FromSeconds(120));
我得到“DbArithmeticExpression参数必须有一个数字公共类型”错误。考虑到我需要TimeSpan中的差异,我怎么能这样做呢?
提前致谢。
答案 0 :(得分:26)
您可能希望使用SqlFunctions.DateDiff
Tickets.Where(t =>
SqlFunctions.DateDiff("second", t.Date, myTicket.Date) < 120));
答案 1 :(得分:4)
你也可以使用它;
var result = db.Tickets.Where(t =>
SqlMethods.DateDiffSecond(myTicket.Date , t.Date) < 120);
答案 2 :(得分:2)
Entity Framework中不支持使用DateTime进行算术运算。您必须使用其中一个SqlFunctions。所以,对于你的陈述,例如:
Tickets.Where(t =>
SqlFunctions.DateDiff("second", t.Date, myTicket.Date) < 120));