我有Linq查詢並希望立即執行它,然後處理數據。現在在下面的代碼中,執行第二個(2)Linq查詢時,將執行第一個(1)Linq查詢。我想先執行第一個(1)查詢,該怎麼做?Linq to 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);
}
我不會錯過任何東西:當你定義的LINQ to SQL查詢 ,這樣你可以通過調用ToList或ToArray的 擴展方法,其獲取數據到一個列表或數組做到這一點。我問如何執行數據,然後執行額外的操作,因爲我瞭解Linq如何工作:)無論如何謝謝你的詳細描述! – Tomas 2011-12-28 13:42:35
:-) ....只是添加.ToList()或ToArray(),你很好 – 2011-12-28 13:44:17
@PankajUpadhyay這是'var productsQuery = =(從產品中的p 選擇p.ToList();'與代碼相同在你的例子中?如果不是,如果我添加一個where子句到你的例子中,它只會提取匹配where子句的結果 – Igor 2014-10-11 17:03:02