Linq查询具有一对多关系

时间:2011-04-03 07:17:56

标签: linq linq-to-entities

我的asp.net MVC3应用程序中有两个参与者,我使用的是EF 4.1。实体是:

public class Category {
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Movie> Movies { get; set; }
}

public class Movie {
    public int Id { get; set; }
    public string Title { get; set; }
    public string Director { get; set; }
    public int Price {get; set;}
    public DateTime ReleaseDate { get; set; }
    public string Description { get; set; }
    public Category Category { get; set; }
}

我想使用Linq查询计算所有类别名称=“喜剧”的电影的价格总和。你能用扩展方法向我推荐Linq查询吗?

感谢。

1 个答案:

答案 0 :(得分:1)

假设您有IEnumerable<Movie> movies,则可以

movies
    .Where(x => x.Category.Name == "Comedy")
    .Select(x => x.Price)
    .Sum();

正如@Linkgoron在评论中所说,您也可以将谓词放在Sum方法中,例如:

movies
    .Where(x => x.Category.Name == "Comedy")
    .Sum(x => x.Price);