我有,我認爲是一個非常簡單的查詢。從Sql轉換到Linq
在普通的SQL這會閱讀:
SELECT [column names]
FROM agentscheduledetail
WHERE (date = '2012-07-04') AND
(
exception = 'Break (No Sign Off)' OR
exception = 'Break' OR
exception = 'Break (Signed Out)'
)
這將返回約900條記錄。
但是,當我試圖將這個輸入到我的控制器中時,我最終得到了大約300,000條記錄 - 所以我認爲我的AND和OR不起作用。我試過Linqer,但不能得到它的工作(我知道這可能不是實際的LINQ,但在VS中的等效查詢 - 如果有LINQ版本...我也會感激這一點,如果可能)。
我控制器查詢:
var dte = DateTime.Today;
return View(db.agentscheduledetails.Where
(
d => d.date == dte && d.agentName.StartsWith("ta") &&
(
d.exception == "Break (No Sign Off)" ||
d.exception == "Break" ||
d.exception == "Break (Signed Out)"
)
).ToList()
);
誰能無論是)讓我知道我和我的& &腳麻|| (和/或),或者b)有沒有一種方法可以通過VS中的代碼來查看上面查詢在常規SQL中轉換的內容,以便我可以嘗試找出我要出錯的地方?
感謝您的幫助,
馬克
嘗試使用.Contains()來檢查字符串 –
您尚未指定是使用LINQ to SQL還是實體框架 - 但無論哪種方式,都可以,查看生成的SQL的方法。例如,在LINQ to SQL中查看'DataContext.Log'。 –
設置數據庫上下文以將sql查詢輸出到日誌文件或調試器窗口。檢查是否正確。 –