我正在尝试从详细信息表中获取记录的数量,它是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
}
答案 0 :(得分:2)
您可以使用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())
}