对 NHibernate 查询结果进行排序

发布于 2024-11-02 11:01:08 字数 571 浏览 1 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半衾梦 2024-11-09 11:01:08

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

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

you need to return a strongly typed list of the entity mapped to this Table

public IEnumerable<Agency> GetActive() 
{
   return Session.CreateQuery("from Agency where active=true")
   .List<Agency>().orderby(c=>c.agencyname);
}
知足的幸福 2024-11-09 11:01:08

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

You can convert the IENumerable to a LIst with the ToList() method, then sort.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文