我想查詢一個嵌套linq查詢表。我的查詢工作,但速度太慢。我有近40萬行。此查詢爲1000行工作10秒。對於400k,我認爲它大約需要2個小時。有沒有更快的方式來處理嵌套linq查詢?
我有這樣
StudentNumber - DepartmentID
n100 - 1
n100 - 1
n105 - 1
n105 - 2
n107 - 1
我想這有不同的部門ID的學生行。我的結果看起來像這樣。
StudentID - List
n105 - 1 2
而我的查詢提供了它。但是慢慢地。
var sorgu = (from yok in YOKAktarim
group yok by yok.StudentID into g
select new {
g.Key,
liste=(from birim in YOKAktarim where birim.StudentID == g.Key select new { birim.DepartmentID }).ToList().GroupBy (x => x.DepartmentID).Count()>1 ? (from birim in YOKAktarim where birim.StudentID == g.Key select new { birim.DepartmentID }).GroupBy(x => x.DepartmentID).Select(x => x.Key).ToList() : null,
}).Take(1000).ToList();
Console.WriteLine(sorgu.Where (s => s.liste != null).OrderBy (s => s.Key));
我用linqpad C#語句寫了這個查詢。
Downvoter正在評論? – MarcinJuraszek
我還沒有投票。我想別人。 –
我不是說你做了:) @İsmailHakkıŞen讓我知道現在是否更快。 – MarcinJuraszek