如果始终在操作之前应用操作,我在OData 协议文档中找不到提及。显然,在实现一致的页面检索算法时这样做是有意义的。$filter
$skip
我担心的是表达式树不会施加这样的约束。例如,以下两个查询通常会产生不同的结果。
IQueryable<string> query = (new[] { "aaa", "eee", "bbbb", "cccc", "dddd" }).AsQueryable();
query.Where(arg => arg.Length > 3).Skip(1);
query.Skip(1).Where(arg => arg.Length > 3);
我已经对 OData 的 ASP.NET Web API RC 实现进行了一些简单的测试,它确实适用于$filter
before $skip
,无论运算符出现在查询字符串中的什么位置。但总的来说这是真的吗?