排序NHibernate查询结果

本文关键字:结果 查询 NHibernate 排序 | 更新日期: 2023-09-27 17:50:39

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)) { ... }

排序NHibernate查询结果

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

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

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