2014-11-21 69 views
0
var MyCours = Db.COURS.Where(C => C.CLASSE_ID == ClassID 
             && DateTime.Now>= C.START_DATE 
             && DateTime.Now <= C.END_DATE) 
     .ToList(); 

有些更改仍然不工作!这个Linq查询有什么不对?

+1

你会得到什么错误? – 2014-11-21 12:21:57

+1

从数据库中读取数据时,不能在linq查询中使用DateTime类。获取Datetime.Now给一些变量,并尝试在linq查询中使用。此外,DateTime.Compare不能用于liq查询 – PrinceT 2014-11-21 12:22:55

+1

调试器只是跳过它没有错误显示! – Halid 2014-11-21 12:26:27

回答

4

可能的问题是提供程序无法将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到一个变量隔离的非确定性即确保两次比较是同时进行的。

+1

谢谢你的工作! – Halid 2014-11-21 12:47:55