私はLinqクエリを持っていて、直ちに実行してからデータを操作したいと考えています。次のコードでは、最初の(1)Linqクエリは、2番目の(2)Linqクエリが実行されるときに実行されます。私は最初に(1)クエリを実行したい、それを行う方法?LinqからSQLにすぐにクエリを実行
// 1
var statistic = DataAccess.Instance.Statistics
.Where(p => p.DateStamp >= fromDate && p.DateStamp <= DateTime.UtcNow && p.UserId == userId)
.Select(p => new {p.DateStamp.Year, p.DateStamp.Month, p.DateStamp.Day });
values = new int[interval];
labels = new string[interval];
for (var i = 0; i < labels.Length; i++)
{
// 2
var recordsCount = statistic.Count(p => p.Year == dayStep.Year && p.Month == dayStep.Month && p.Day == dayStep.Day);
}
私は何かを逃してはいけない:あなたはこのように、ToListメソッドまたはあなたがSQL クエリにLINQを定義するときに、リストや配列にデータをフェッチしてToArray 拡張メソッドを呼び出すことによってこれを行うことができます。私はLinqの仕組みを理解しているので、最初にデータを実行してから追加の操作を実行する方法を尋ねます:)とにかく詳細な説明に感謝します! – Tomas
:-) ....ちょうど.ToList()またはToArray()を追加して、あなたは大丈夫です。 –
@PankajUpadhyayこれは 'var productsQuery =(製品のpから) select p.ToList();'コードと同じですあなたの例では?そうでない場合、 'where'節をあなたの例に追加すると、' where'節に一致する結果しか取得されませんか? – Igor