我想动态指定要排序的列数。
我的代码如下
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绑定源吗?
答案 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);
原因是,当IQueryable
是ThenBy
的扩展方法(IOrderedQueryable
返回时)时,您将qry声明为OrderBy