2012-03-05 14 views
0

MVCアプリケーションでは、多対多リレーションシップテーブル、ムービー、タグをコード内で最初に使用しています。私は、ユーザーがタグ付きのすべての映画を選択できるようにしたい。たとえば、タグid = 2のすべてのムービーを選択したいとします。私はこれを行うことができますラムダクエリが必要です。アソシエートの選択方法多対多リレーションシップテーブル

答えて

0

これは、1つの方法です:

var moviesWithTag2 = context.Movies 
    .Where(m => m.Tags.Any(t => t.Id == 2)) 
    .ToList(); 

= 2 IDを持つタグがない場合。これは、空のコレクションを返します。 (ID = 2とはタグが存在しない場合nullを返します)

オルタナティブ:

var tag2 = context.Tags.Include(t => t.Movies) 
    .Single(t => t.Id == 2); 

var moviesWithTag2 = context.Tags 
    .Where(t => t.Id == 2) 
    .Select(t => t.Movies) 
    .SingleOrDefault(); 

あなたも、あなただけのムービーなど、それを読み込むことができますTagエンティティをしたい場合

tag2.Moviesには、タグId = 2の映画が含まれます。

+0

あなたは私の一日を作りました。 – JED

+0

再びありがとうございました空のコレクションは私と一緒に大丈夫です。 – JED

関連する問題