如何对连接表结果进行排序?

我的模型:如何对连接表结果进行排序?

namespace Music.Models 

{

public class Album

{

public int AlbumID { get; set; }

public virtual ICollection<Song> Songs { get; set; }

}

}

namespace Music.Models

{

public class Song

{

public int SongID { get; set; }

public int AlbumID { get; set; }

public int TrackNumber { get; set; }

public virtual Album Album { get; set; }

}

}

我想要做的是显示其歌曲指定相册。我想按TrackNumber排序歌曲。尝试像这样:

public ViewResult Details(int id) 

{

Album album = db.Albums.Find(id);

album.Songs.OrderBy(s => s.TrackNumber);

return View(album);

}

但它不起作用。我觉得现在能够在网上找到它,但是无法做到。

任何帮助,将不胜感激。

回答:

您致电OrderBy但返回的有序枚举是“丢失”。

您可以在您的Album类中添加一个吸气剂,它将返回排序的曲目。

public class Album 

{

public int AlbumID { get; set; }

public virtual ICollection<Song> Songs { get; set; }

public IOrderedEnumerable<Song> SortedSongs {

get { return Songs.OrderBy(s => s.TrackNumber); }

}

}

如果您的模型类已生成,您可以将此getter放入分部类中。

回答:

在LINQ,你通常要结果分配操作,如:

album.Songs = album.Songs.OrderBy(s => s.TrackNumber); 

OrderBy创建一个新的orderred集合;除非你告诉它,否则它不覆盖原文。

以上是 如何对连接表结果进行排序? 的全部内容, 来源链接: utcz.com/qa/260132.html

回到顶部