我的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( Symbol 属性)创建新对象。但我需要 new 对象中的其他属性。
有可能吗?
答案 0 :(得分:4)
我建议使用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: Dot Notation vs Query Expression
我认为lambda syntax
更具可读性,在代码中看起来更干净,因为它更具有c#风格而不是sql风格。
当然IL代码没有区别,总是可以安装像resharper这样的工具,它们可以将lambda语法转换为类似sql的语法。
答案 1 :(得分:2)
尝试类似
的内容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
属性将包含组中的实际对象。