0

我正在为我正在关注的 Minor 完成我的最后一项任务,我正在尝试检索一个艺术家列表,每个艺术家都有多个专辑,每个专辑都有多个曲目。在这些选择中,我的任务是只为每张专辑选择一定数量的曲目,而不是全部。这就是我卡住的地方。

到目前为止,我的尝试让我明白了这一点:

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 条记录?

4

1 回答 1

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) }
于 2012-06-11T07:34:11.597 回答