Linq Group在一个带有select语句的多级对象上

时间:2010-04-29 22:35:51

标签: linq-to-sql linq-group

我有3个数据集对象,它们使用实体集对象相互嵌套。我正在选择这样的数据

var newList = from s in MainTable
from a in s.SubTable1 where a.ColumnX = "value"
from b in a.Detail where b.Name = "searchValue"
select new {
    ID = s.ID,
    Company = a.CompanyName,
    Name = b.Name,
    Date = s.DueDate
    Colour = b.Colour,
    Town = a.Town
};

这样可以正常工作,但麻烦的是,每个Name值的Detail对象列表/表中都有很多记录,所以我得到了重复行的加载,因此我只希望每个b.Name显示一条记录。我试过把

group s by b.Name into g
在选择之前

,但是这似乎停止了选择,使我能够选择我想要的列(在实践中还有更多)。在这种情况下如何使用group命令,同时仍将输出行保持为“平面”格式?

1 个答案:

答案 0 :(得分:0)

附加评论作为回答问题的答案: - 当然,如果你对结果进行分组,你就不能选择一个孩子的列,那是因为可能有多个孩子,你必须指定一个聚合列,例如总和,max etx -