Linq, wie mache ich groupBy?
Projekttabelle:
ID, DeptId, Jahr, Name, Ebene
Id = 1, DeptId = 1, Year = 2000, Name = "ABC", Level = 1
Id = 2, DeptId = 1, Year = 2001, Name = "ABC1", Level = 1
Id = 3, DeptId = 1, Year = 2002, Name = "ABC2", Level = 1
Id = 4, DeptId = 2, Year = 2000, Name = "ABC3", Level = 1
Id = 5, DeptId = 2, Year = 2002, Name = "ABC4", Level = 1
Id = 6, DeptId = 3, Year = 2000, Name = "ABC5", Level = 1
Id = 7, DeptId = 3, Year = 2001, Name = "ABC6", Level = 1
Id = 8, DeptId = 3, Year = 2002, Name = "ABC7", Level = 1
Ich habe einen Projekttisch. Ich muss das Projekt für jede Abteilung für 2001 bekommen. Für DeptId = 2, es hat kein Projekt für 2001, ich muss das Projekt des vorherigen Jahres zeigen, das 2000 ist.
mein linq sollte folgendes ergebnis zurückgeben.
Id = 2, DeptId = 1, Year = 2001, Name = "ABC1", Level = 1
Id = 4, DeptId = 2, Year = 2000, Name = "ABC3", Level = 1
Id = 7, DeptId = 3, Year = 2001, Name = "ABC6", Level = 1
Ich habe darüber nachgedacht, groupby zu verwenden, gruppiere die DeptId, bin mir aber nicht sicher, wie ich diese Abfrage schreiben soll.
Aktualisieren:
Das habe ich versucht.
var projects = project.Where (x => x.Year == 2001)
Dies gibt jedoch kein Ergebnis für DeptId = 2 zurück. Deshalb denke ich über die Verwendung von groupby nach, habe aber keine Ahnung, wie ich es schreibe.