Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对NHibernate查询结果进行排序_C#_Linq_Nhibernate_Sorting - Fatal编程技术网

C# 对NHibernate查询结果进行排序

C# 对NHibernate查询结果进行排序,c#,linq,nhibernate,sorting,C#,Linq,Nhibernate,Sorting,显然,我可以在查询本身中进行排序,但是之后再进行排序呢?我只想对返回的IEnumerable进行排序。我可以在foreach循环中很好地使用结果,但我没有标准列表集合上可用的功能(例如使用LINQ对数据进行排序)。最好的分类方法是什么 编辑:这起作用,并保留了使用foreach的功能: public IEnumerable GetActive() { return Session.CreateQuery("from Agency where active=true order by ag

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

编辑:这起作用,并保留了使用foreach的功能:

public IEnumerable GetActive() 
{
   return Session.CreateQuery("from Agency where active=true order by agencyname").List();
}
public IEnumerable GetActive()
{
return Session.CreateQuery(“from Agency where active=true order by agencyname”).List();
}
foreach(agencies.OrderBy(c=>c.AgencyId))中的代理{…}

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

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(“来自代理,其中active=true”)
.List().orderby(c=>c.agencyname);
}

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

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(“来自代理,其中active=true”)
.List().orderby(c=>c.agencyname);
}

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

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

我在询问之前尝试过这一点,但我得到一个错误:“Interface”System.Collections.IENumerable“没有类型参数”return Session.CreateQuery(“来自Agency,其中active=true order by agencyname”).List();然后:foreach(agencies.OrderBy(c=>c.AgencyId)中的Agency Agency){workedAh,它以前没有出现的原因是我没有导入System.Collections.Generic,只是导入System.Collections。通常,resharper会选择这种类型的东西。我在询问之前尝试了这种方法,但我得到了一个错误:“Interface'System.Collections.IEnumerable'没有类型参数”return Session.CreateQuery(“从Agency where active=true order by agencyname”).List();然后:foreach(Agency Agency in agents.OrderBy(c=>c.AgencyId)){workedAh,它以前没有出现的原因是因为我没有导入System.Collections.Generic,只是导入System.Collections。通常情况下,resharper会选择这种类型的东西。实际上我几分钟前就试过了,”source is not IEnumerable“您使用的是哪个版本的NHibernate?NHibernate.dll上的版本是3.0.0.4000。我的代码是错误的。请参阅mBotros的答案。我实际上在几分钟前尝试过这个问题,”source is not IEnumerable“您使用的是哪个版本的NHibernate?NHibernate.dll上的版本是3.0.0.4000。我的代码是错误的。请参阅mBotros的答案。