Bu iki varlık var. o StartTime var tarafından ayrıca her Class siparişGruplama ve çoklu sıralamalar
var myList = context.Classes
.GroupBy(c => c.Course)
.OrderByDescending(g => g.Key.StartDate).ToList()
Ama hiç yönetemez: Ben Course.StartDate tarafından Sahası ve emriyle gruba alabilirsiniz.
var myList = context.Classes
.OrderBy(c => c.StartTime)
.GroupBy(c => c.Course)
.OrderByDescending(g => g.Key.StartDate).ToList()
Ve hatta bu:
var myList = context.Classes
.GroupBy(c => c.Course)
.OrderByDescending(g => g.Key.StartDate)
.ThenBy(g => g.Select(c => c.StartTime)).ToList()
Ama Başlama zamanı var tarafından Sınıflar sipariş asla. Bu çalıştı
* aydınlatılması için daha Düzenleme: Bu bir WebService için ve ben bir List<IGrouping<Course, Class>>
döndürmesi gerekir ve gerçekten elle liste yaratmadan, bunu yapmanın zarif bir şekilde (yani sadece Linq kullanarak) istiyorum. Tabii ki mümkün olmadıkça.
Herhangi bir yardıma gerek yok (EF kodunu ilk kullanıyorum 4.3 btw).
Bu muhtemelen en iyi bahistir. 'ToLookup' bir' ILookup döndürür IEnumerable> 'i uygulayan , yani bunu web servisine aktarabilirsiniz (bunu yapmak zorunda kalabilirsiniz, ama bu bir problem olmamalıdır). –
SPFiredrake
Bunu hacklenmiş bir çözümle çözdüm, ancak bu çok daha şık. –