我正在完成我对未成年人的最终任务,我正在尝试检索艺术家列表,其中每个都有多个相册,每个相册都有多个曲目。在那个选择中,我的任务是每张专辑只选择一定数量的曲目,而不是全部。这就是我被困住的地方。
到目前为止,我的尝试让我知道了这一点:
var result = (from ta in db.ARTIEST
join tb in db.ALBUM on ta.ARTIEST_ID equals tb.ARTIEST_ID
join tc in db.TRACK on tb.ALBUM_ID equals tc.ALBUM_ID
where tb.TITEL == param && (
from td in db.TRACK
where td.ALBUM_ID == tb.ALBUM_ID
select td.ALBUM_ID
).Take(3).Contains(tb.ALBUM_ID)
select ta);
基本上,我的问题是,如何使用Linq to Entities构建查询,将2个表连接到Artiest表,同时将第3个表中的选定结果限制为3个记录?
答案 0 :(得分:0)
最简单的方法是在专辑和曲目之间使用导航属性:
from artist in db.Artists
join album in db.Albums on artist.ARTIEST_ID equals album.ARTIEST_ID
where album.TITEL == param
select new { artist, album, FirstTracks = album.Tracks.Take(3) }