LINQ按表达式分组语法 [英] LINQ group by expression syntax

查看:46
本文介绍了LINQ按表达式分组语法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个与此类似的T-SQL查询:

I've got a T-SQL query similar to this:

SELECT r_id, r_name, count(*)
FROM RoomBindings
GROUP BY r_id, r_name

我想使用LINQ来做同样的事情.到目前为止,我到了:

I would like to do the same using LINQ. So far I got here:

var rooms = from roomBinding in DALManager.Context.RoomBindings
                        group roomBinding by roomBinding.R_ID into g
                        select new { ID = g.Key };

如何提取count(*)和r_name部分?

How can I extract the count(*) and r_name part?

推荐答案

尝试一下:

var rooms = from roomBinding in DALManager.Context.RoomBindings
                        group roomBinding by new 
                        { 
                           Id = roomBinding.R_ID, 
                           Name = roomBinding.r_name
                        }
                        into g
                        select new 
                        { 
                           Id = g.Key.Id,
                           Name = g.Key.Name,
                           Count = g.Count()  
                        };

由Nick编辑-添加了方法链语法进行比较

var rooms = roomBinding.GroupBy(g => new { Id = g.R_ID, Name = g.r_name })
                       .Select(g => new
                           {
                               Id = g.Key.Id,
                               Name = g.Key.Name,
                               Count = g.Count()
                           });

这篇关于LINQ按表达式分组语法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆