Ef code first 是否可以从数据库集创建IOrderedEnumerable bindingsource?

Ef code first 是否可以从数据库集创建IOrderedEnumerable bindingsource?,ef-code-first,entity-framework-5,Ef Code First,Entity Framework 5,我想动态指定要排序的列数 我的代码如下 var dset = Context.People; var QuickSearch = "a"; var qry = dset.Where( p => p.LastName.Contains(QuickSearch) ); qry.Load(); BindingSource bindingsource; bindingSource.DataSource = dset.Local.ToBindingList()

我想动态指定要排序的列数

我的代码如下

var dset = Context.People;
var QuickSearch = "a";                
var qry  = dset.Where( p => p.LastName.Contains(QuickSearch) );
 qry.Load();
 BindingSource bindingsource;
 bindingSource.DataSource = dset.Local.ToBindingList();
我想在答案中使用这个技巧

因此,我应该能够做一些类似(简化)

IQueryable qry=null;
qry=base.Context.People.OrderBy(x=>x.FirstName);//这没关系
qry=qry.ThenBy(y=>y.LastName);//这不会编译
但是它不编译

[更新]
因为ThenBy是IOrderable的一种扩展方法,所以我的问题变得
是否可以从数据库集创建IOrderedEnumerable bindingsource?

将其更改为:

var qry = base.Context.People.OrderBy(x=>x.FirstName);  
qry = qry.ThenBy(...)

IOrderedQueryable qry=null;
qry=base.Context.People.OrderBy(x=>x.FirstName);
qry=qry.ThenBy(y=>y.LastName);

原因是您将qry声明为
IQueryable
,而
ThenBy
IOrderedQueryable
的扩展方法(这是
OrderBy
返回的)

当我这样做时,我得到一个错误`无法将行
qry=base.Context.People.OrderBy(x=>x.FirstName)
上的type system.linq.IOrderedQueryable转换为target type system.linq.iorderednumerable或使用第一种方法
var qry = base.Context.People.OrderBy(x=>x.FirstName);  
qry = qry.ThenBy(...)
IOrderedQueryable<Person> qry = null;
qry = base.Context.People.OrderBy(x=>x.FirstName);  
qry = qry.ThenBy(y=>y.LastName);