C# 是否按多个表分组,并且仍然可以访问原始查询?

C# 是否按多个表分组,并且仍然可以访问原始查询?,c#,sql,linq,linq-to-entities,group-by,C#,Sql,Linq,Linq To Entities,Group By,我试着加入,然后分组,我返回的分组信息很棒!工作起来很有魅力,但如果有意义的话,我仍然需要访问分组之外的值 我发现了一个关于stackoverflow的例子,这可能更好地解释了它 var query = from c in context.Contacts join o in context.Orders on c.Id equals o.CustomerId select new { C

我试着加入,然后分组,我返回的分组信息很棒!工作起来很有魅力,但如果有意义的话,我仍然需要访问分组之外的值

我发现了一个关于stackoverflow的例子,这可能更好地解释了它

var query = from c in context.Contacts
            join o in context.Orders on c.Id equals o.CustomerId
            select new 
            { 
                Contact = c, 
                Order = o 
            } into ContactAndOrder
            group ContactAndOrder by ContactAndOrder.Order.Id into g
            select new 
            { 
                g.Key, 
                ContactWhatever = g.Sum(co => co.Contact.Whatever), 
                OrderWhatever = g.Sum(co => co.Order.Whatever) 
            };
现在这似乎很有效,问题是在我的情况下co.Order.Whatever是字符串,所以我得到一个错误,说不能将字符串转换为int,我理解为聚合函数Sum需要int

我的问题是,是否有一个聚合函数或类似的东西可以得到co.Order.Whatever的值(在我的例子中是一个字符串)

问题是,一旦完成分组,我就失去了“c”和“o”

我希望有人能帮忙


提前感谢

如果在小组中总是一样的话,第一个就足够了

ContactWhatever = g.First().Contact.Whatever
否则请使用@Andrei答案 或


您打算如何处理co.Order.无论什么?我只想打印值。。。。分组记录的值将始终相同。。。
ContactWhatever = g.Select(o => o.Contact.Whatever).Aggregate((a,b) => a + "," + b)