我试图对特定的LINQ结果集进行排序和分组。
我有两个模型,一个是Gallery
(相册),另一个是Media
(媒体)。相册包含媒体。
Gallery
和Media
对象都按照一个名为SortOrder
的关键字(列)排序。
我正在尝试制作一个选择器,返回一组相册中的所有媒体,但需要:
- 按
GalleryId
(相册关键字)分组 - 按
Gallery.SortOrder
排序相册 - 按
Media.SortOrder
排序媒体
因此,结果集应该如下所示:
Gallery 1
Media 1
Media 2
Media 3
Gallery 2
Media 1
Media 2
Media 3
Gallery 3
Media 1
Media 2
Media 3
我目前有:
var EventGalleries = from g in db.Galleries
where g.EventId == id
orderby g.SortOrder
select g.GalleryId;
var EventMedia = from m in db.Media
where EventGalleries.Contains(m.GalleryId)
orderby m.SortOrder ascending
select m;
现在我需要重新排序或按EventGalleries.SortOrder
属性对EventMedia
列表进行分组。
EventGalleries
数组已经按正确顺序排列,但我不确定EventMedia
是否会按此方式正确排序/分组。
g3
,则g3
将不会出现在输出中。请参见工作演示的分支。http://ideone.com/RWgaxt - Robert Paulson