我需要使用nhibernate查询做一个简单的“group by”。
我的尝试是:
(from adn in session.Query<Table>()
orderby adn.Data
select adn.Data).Distinct().ToList<string>();
和
session.Query<Table().GroupBy(adn => adn.Data).Select(dat => dat).ToList<string>()
有人可以帮我找到解决方案吗? 我的目标是检索所有不同的“数据”列。 它可以是分组或不同的。
(2种解决方案对于我的nhibernate进展会更好)
此致
修改
Danyolviax,我尝试了你的解决方案
return (from adn in session.Query<Table>()
group adn by adn.Data into dataGroupe
select dataGroupe).ToList<string>();
它不起作用。 我担心我使用Nhibernate 3.1(而不是2.1)
任何更正或替代解决方案?
编辑2
在第二个有效的解决方案(^^)
我有一个包含一个属性的类的列表。 在我的情况下,我更喜欢有一个字符串或int列表。 否则我应该为这种情况创建一个特定的类。
你知道一个技巧。
感谢您的支持。
答案 0 :(得分:4)
看这里:
Linq to NHibernate and Group By
这里有一些例子:
http://msdn.microsoft.com/en-us/vcsharp/aa336754
<强>更新强>
尝试使用3.1.0.4000:
var ret = (from adn in session.Query<Table>()
group adn by adn.Data into dataGroup
select new {dataGroup.Key }).ToList();
更新
var ret = (from adn in session.Query<Table>()
group adn by adn.Data into dataGroup
select dataGroup.Key).ToList<string>();