这个 Linq 查询出了什么问题
本文关键字:什么 问题 Linq 查询 这个 | 更新日期: 2023-09-27 18:31:18
var MyCours = Db.COURS.Where(C => C.CLASSE_ID == ClassID
&& DateTime.Now>= C.START_DATE
&& DateTime.Now <= C.END_DATE)
.ToList();
有些更改仍然不起作用!
一个可能的问题是提供程序无法将DateTime.Compare
投影到 SQL 语句中。在比较方向上也可能存在逻辑错误(除非你真的想要enddate < now < startdate
),我还建议使用.ToList()
实现为列表:
var theTimeNow = DateTime.Now;
var MyCours = Db.COURS.Where(C => C.CLASSE_ID == ClassID
&& theTimeNow >= C.START_DATE
&& theTimeNow <= C.END_DATE)
.ToList();
将DateTime.Now
投影到变量中可以隔离它的非确定性,即确保两个比较是针对同一时间的。