具有一对多关系的 Linq 查询

发布于 2024-10-29 10:11:47 字数 618 浏览 1 评论 0原文

我的 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 查询?

谢谢。

I have two entites in my asp.net MVC3 application and I am using EF 4.1. Entities are:

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; }
}

I want to calculate sum of prices of all movies where category name = "Comedy" using Linq query. Can you please suggest me Linq query using extension method ?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

天涯沦落人 2024-11-05 10:11:48

假设您有一个 IEnumerable;电影,你可以这样做

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);

Assuming that you have an IEnumerable<Movie> movies, you can do

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

As @Linkgoron says in the comment, you can also put the predicate in the Sum method, such as:

movies
    .Where(x => x.Category.Name == "Comedy")
    .Sum(x => x.Price);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文