Как выбрать ассоциированную таблицу из множества отношений - PullRequest
0 голосов
/ 06 марта 2012

У меня есть много-много таблиц отношений, фильм и метка в коде в моем приложении MVC Я хочу, чтобы пользователь мог выбрать все фильмы, связанные с тегом. например, я хочу выбрать все фильмы с тегом id = 2. Мне нужен лямбда-запрос, который позволит мне сделать это. Любая помощь с благодарностью.

1 Ответ

0 голосов
/ 06 марта 2012

Это один из способов:

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

Это вернет пустую коллекцию, если нет тега с Id = 2.

Alternative (который вернет null, если естьбез тега с Id = 2):

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

Если вы также хотите, чтобы сущность Tag вы могли просто загрузить ее, включая ее фильмы:

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

tag2.Movies будет содержатьфильмы с тегом Id = 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...