如何对连接表结果进行排序?
我的模型:如何对连接表结果进行排序?
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