我的MVC应用程序中的代码优先方法中有多对多的关系表,电影和标签。我希望用户能够选择与标签关联的所有电影。例如,我想选择标签id = 2的所有电影。我需要lambda查询,这将允许我这样做。任何帮助与赞赏。
答案 0 :(得分:0)
这是一种方式:
var moviesWithTag2 = context.Movies
.Where(m => m.Tags.Any(t => t.Id == 2))
.ToList();
如果没有Id = 2的标签,这将返回一个空集合。
替代方案(如果没有Id = 2的标签,将返回null
):
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的电影。