对 NHibernate 查询结果进行排序
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)) { ... }
public IEnumerable GetActive()
{
return Session.CreateQuery("from Agency where active=true order by agencyname").List();
}
Obviously, I can sort in the query itself, but what about doing it afterwards? I just want to sort the IEnumerable returned here. I can use the result in a foreach loop just fine, but I don't have the features available on a standard list collection (such as using LINQ to sort the data). What's the best method of sorting this?
Edit: this worked, and preserved the ability to use 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)) { ... }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要返回映射到此表的实体的强类型列表
you need to return a strongly typed list of the entity mapped to this Table
您可以使用 ToList() 方法将 IEnumerable 转换为 LIst,然后进行排序。
You can convert the IENumerable to a LIst with the ToList() method, then sort.