C# 获取特定时间间隔之间的数据

C# 获取特定时间间隔之间的数据,c#,linq,entity-framework,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 >= abou

假设一个事件发生在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

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

 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;

那么你的问题是什么?你的查询有效吗?如果不是,它对一些示例输入做了什么,应该返回什么?它是否没有编译,或者是否出错,或者是什么?这是一个多么谨慎的查询?例如,你必须考虑夏时制吗?在添加/减去时间之前,您可能需要转换为UTC抱歉,我没有提供,但它没有返回正确的信息。我想我的where子句是off从未使用过这个,你能提供一个例子吗,我的子句会得到我需要的结果吗?@user516883当然,更新为example@user516883这解决了你的问题吗?