可以从DBSet创建IOrderedEnumerable绑定源吗?

时间:2013-11-21 22:58:25

标签: 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();

我想在概述的答案中使用该技术 here

因此我应该可以做一些像(简化)

这样的事情
IQueryable<Person> qry = null;
qry = base.Context.People.OrderBy(x=>x.FirstName);  // this is OK
qry = qry.ThenBy(y=>y.LastName);   // This wont compile

然而它无法编译。

[更新]
  因为ThenBy是IOrderable的扩展方法我的问题就变成了   可以从DBSet创建IOrderedEnumerable绑定源吗?

1 个答案:

答案 0 :(得分:1)

将其更改为:

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);

原因是,当IQueryableThenBy的扩展方法(IOrderedQueryable返回时)时,您将qry声明为OrderBy