0

フォローしている未成年者への最終的な割り当てに取り組んでいます。アーティストのリストを取得しようとしています。各アーティストには複数のアルバムがあり、それぞれに複数のトラックがあります。そのセレクションの中から、すべてではなく、アルバムごとに特定の数のトラックのみを選択することを任されています。そして、それが私が立ち往生しているところです。

これまでのところ、私の試みはこれを私にもたらしました:

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 に答える