在特定时间间隔内获取数据

时间:2013-06-19 15:49:49

标签: c# linq entity-framework

让我们说事件发生在11点。我希望能够只显示该事件是在事件开始前1小时到事件结束之间。谢谢你的帮助。

 from x in _context.Events
 join a in _context.Addresses on x.EventAddressID equals a.ID
 let aboutToStart = x.EventStartTime.AddHours(-1)
 let currentTime = DateTime.Now
 where x.EventStartTime >= aboutToStart && x.EventEndtime >= currentTime

1 个答案:

答案 0 :(得分:1)

您无法使用DateTime调用在服务器上创建新的.AddHours(-1)个对象。相反,您应该使用EntityFunctions.AddHours方法来计算服务器上的日期时间:

 var currentTime = DateTime.Now;
 var query = from x in _context.Events
             join a in _context.Addresses on x.EventAddressID equals a.ID
             let aboutToStart = EntityFunctions.AddHours(x.EventStartTime, -1)
             where x.EventStartTime >= aboutToStart && 
                   x.EventEndtime >= currentTime;