LINQ 获取二级详细表的计数

发布于 2024-11-16 16:16:10 字数 349 浏览 4 评论 0原文

我正在尝试从详细信息表中获取记录数,这是 LINQ 中的详细信息表,但我遇到了障碍。

假设我在此结构中有 3 个表:

Header
    Detail
        Items

我希望查看所有标题项以及详细信息计数及其项目计数。

from h in Header select new {
  h.Name,
  h.IsEnabled,
  DetailCount = h.Details.Count(),
  ItemCount = h.Details.Items.Count() <---- Here's the problem
}

I'm trying to get the count of records from a detail table, and it's detail table in LINQ and I'm hitting a road block.

Lets say I have 3 tables in this structure:

Header
    Detail
        Items

I would like to see all Header items with the count of Detail and the count of it's Items.

from h in Header select new {
  h.Name,
  h.IsEnabled,
  DetailCount = h.Details.Count(),
  ItemCount = h.Details.Items.Count() <---- Here's the problem
}

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

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

发布评论

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

评论(1

秋凉 2024-11-23 16:16:10

您可以使用SelectMany

from h in Header select new {
  h.Name,
  h.IsEnabled,
  DetailCount = h.Details.Count(),
  ItemCount = h.Details.SelectMany(d => d.Items).Count()
}

或者,如果您愿意,您可以对每个详细信息的项目计数进行求和:

from h in Header select new {
  h.Name,
  h.IsEnabled,
  DetailCount = h.Details.Count(),
  ItemCount = h.Details.Sum(d => d.Items.Count())
}

You can use SelectMany:

from h in Header select new {
  h.Name,
  h.IsEnabled,
  DetailCount = h.Details.Count(),
  ItemCount = h.Details.SelectMany(d => d.Items).Count()
}

Or if you prefer you could sum the items count of each detail:

from h in Header select new {
  h.Name,
  h.IsEnabled,
  DetailCount = h.Details.Count(),
  ItemCount = h.Details.Sum(d => d.Items.Count())
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文