2014-11-21 157 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