LINQ 分组 - 获取其他未分组的属性
本文关键字:属性 其他 分组 获取 LINQ | 更新日期: 2023-09-27 18:31:56
我的LINQ查询(nHibernate)几乎没有问题
我需要具有相等属性符号的对象 znak 计数
我的查询:
var tmp = (from znak in sesja.Query<Znak>()
group znak by znak.Symbol into r
select new { Name= r.Key.Name, SUM= r.Count() });
这个查询有效,但我需要使对象包含 znak 类的其他属性。
在这种情况下:select new { Name= r.Key.Name, SUM= r.Count() });
我只能从 r.Key(符号属性)创建新对象。但是我的新对象中需要其他属性。
可能吗?
我建议使用 lambda Linq 语法:
var items = sesja.Query<Znak().AsEnumerable();
var newList = items.GroupBy(x=>x.Symbol).Select(
x=> new { Name=x.Key.Name, Count = x.Count(), Items = x.ToList() });
阅读有关 Linq 语法 LINQ:点表示法与查询表达式的更多信息
我认为lambda syntax
更具可读性,并且在代码中看起来更干净,因为它更像是 c# 样式而不是 sql 样式。
代码不会有区别,总是可以安装resharper之类的工具,它们可以将lambda语法转换为类似sql的语法。
尝试类似
var tmp = (from znak in sesja.Query<Znak>()
group znak by znak.Symbol into r
select new { Name= r.Key.Name, SUM= r.Count(), Items = r.ToList() });
Items
属性将包含组中的实际对象。