2011-05-31 113 views
2

我需要用nhibernate查询来做一个简单的“group by”。Linq to Nhibernate 3.1 Group By(或distinct)

我的尝试是:

(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,我tryied您的解决方案

 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

你有什么错误? – danyolgiax 2011-05-31 13:33:15

+0

I'v更新我的帖子...希望这有助于! – danyolgiax 2011-05-31 14:05:43

回答

3

看看这里:

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>(); 
+0

谢谢你的工作 – 2011-05-31 15:54:31

+0

不客气! – danyolgiax 2011-05-31 15:56:05