对NHibernate查询结果进行排序

时间:2011-04-19 16:47:02

标签: c# linq nhibernate sorting

public IEnumerable GetActive() 
{
   return Session.CreateQuery("from Agency where active=true order by agencyname").List();
}

显然,我可以对查询本身进行排序,但之后又做了什么呢?我只想对这里返回的IEnumerable进行排序。我可以在foreach循环中使用结果,但是我没有标准列表集合上可用的功能(例如使用LINQ对数据进行排序)。排序这个的最佳方法是什么?

编辑:这有效,并保留了使用foreach的能力:

public IEnumerable<Agency> GetActive() 
{
   return Session.CreateQuery("from Agency where active=true order by agencyname").List<Agency>();
}

foreach (Agency agency in agencies.OrderBy(c=>c.AgencyId)) { ... }

2 个答案:

答案 0 :(得分:3)

您需要返回映射到此表的实体的强类型列表

public IEnumerable<Agency> GetActive() 
{
   return Session.CreateQuery("from Agency where active=true")
   .List<Agency>().orderby(c=>c.agencyname);
}

答案 1 :(得分:0)

您可以使用ToList()方法将IENumerable转换为LIst,然后排序。