Nic*_*ckH 3 c# linq entity-framework
我正在使用来自Albahari的 PredicateBuilder和LINQKit 构建一个LINQ查询,该查询具有可选参数,可选的OrderBy,可选的Skip()和可选的Take().
PredicateBuilder可以很容易地构建可选参数,但我遇到了其他问题.为了简化问题:
这有效
var query = this.MyContext.Things.AsExpandable.Where(predicate).OrderBy(s => s.Name);
return query.ToList();
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情,所以我可以将OrderBy包装在if中.但它不起作用,结果不按名称顺序排列.
var query = this.MyContext.Things.AsExpandable().Where(predicate);
query.OrderBy(s => s.Name);
return query.ToList();
Run Code Online (Sandbox Code Playgroud)
有人能指出我正确的方向吗?我是一个NHibernate转换器,仍然掌握着LINQ.
您缺少对query变量的重新赋值- OrderBy()(与所有其他标准查询运算符相同)返回一个新变量IQueryable<T>:
query = query.OrderBy(s => s.Name);
Run Code Online (Sandbox Code Playgroud)