Linq to sql 具有select语句的多级对象上的Linq组

Linq to sql 具有select语句的多级对象上的Linq组,linq-to-sql,linq-group,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 =

我有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
};
这很好,但问题是每个名称值的详细对象列表/表中都有许多记录,因此我得到了大量重复的行,因此我只希望每个b.Name显示一条记录。我试过把

group s by b.Name into g

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

将注释作为结束问题的答案:-
当然,如果对结果进行分组,则无法选择子项的列,这是因为可能有多个子项,并且必须指定一个聚合列,例如sum,max etx–

当然,如果对结果进行分组,则无法选择子项的列,这是因为可能有多个child,您必须指定一个聚合列,例如sum,max etxI,我只从底部的child中选择一列,所有其他列都来自顶部或中间的父级,因此没有理由会有任何歧义,但我从SQL的角度理解您的意思。是的,根据每一个专栏进行分组,你能把它作为一个答案吗,亚历杭德罗博,这样我就可以把正确的答案和相关的分数归功于你了