我正在使用来自 Albahari 的 PredicateBuilder 和 LINQKit构造一个具有可选参数、可选 OrderBy、可选 Skip() 和可选 Take() 的 LINQ 查询。
PredicateBuilder 使构建可选参数变得容易,但我在处理其他内容时遇到了问题。为了简化问题:
这行得通
var query = this.MyContext.Things.AsExpandable.Where(predicate).OrderBy(s => s.Name);
return query.ToList();
我想做这样的事情,所以我可以将 OrderBy 包装在 if 中。但是它不起作用,结果不按名称顺序排列。
var query = this.MyContext.Things.AsExpandable().Where(predicate);
query.OrderBy(s => s.Name);
return query.ToList();
有人能指出我正确的方向吗?我是 NHibernate 的转换者,并且仍在掌握 LINQ。
最佳答案
您缺少对 query
的重新分配变量 - OrderBy()
(与所有其他标准查询运算符相同)返回一个新的 IQueryable<T>
:
query = query.OrderBy(s => s.Name);
关于c# - IQueryable 可选 OrderBy 与 PredicateBuilder 和 Entity Framework ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7651995/