Linq到Nhibernate 3.1 Group By(或不同)

时间:2011-05-31 12:00:34

标签: nhibernate linq-to-nhibernate

我需要使用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列表。 否则我应该为这种情况创建一个特定的类。

你知道一个技巧。

感谢您的支持。

1 个答案:

答案 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>();