这个 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();

有些更改仍然不起作用!

这个 Linq 查询出了什么问题

一个可能的问题是提供程序无法将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投影到变量中可以隔离它的非确定性,即确保两个比较是针对同一时间的。