私が思ったのは、かなり単純なクエリでした。
通常の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()
);
誰かがa)私の&&のどこが間違っているのか教えてくれませんか|| (および/または)、またはb)VSのコードをステップスルーして、上記のクエリが通常のSQLで何に変換されるかを確認し、どこが間違っているのかを把握する方法はありますか?
助けてくれてありがとう、
マーク