我在ASP.NET Web API应用程序中使用开箱即用的ValuesController
public class ValuesController : ApiController
{
// GET api/values
[Queryable(PageSize = 1)]
public IQueryable<string> Get()
{
return new string[] { "value1", "value2", "value3", "value4", "value5" }.AsQueryable();
}
}
Run Code Online (Sandbox Code Playgroud)
当我 get http://localhost/api/values?$inlinecount=allpages
这是回应
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>value1</string>
</ArrayOfString>
Run Code Online (Sandbox Code Playgroud)
我没有注释 config.EnableQuerySupport();
过滤,排序工作正常.
如果我尝试get http://localhost/api/values?$inlinecount=XXXXX获得异常,那么Web API应用程序似乎就知道了inlinecount
<Message>The query specified in the URI is not valid.</Message>
<ExceptionMessage>'xxx' is not a valid value for $inlinecount.</ExceptionMessage>
<ExceptionType>Microsoft.Data.OData.ODataException</ExceptionType>
Run Code Online (Sandbox Code Playgroud)
我肯定有Microsoft.AspNet.WebApi.OData包 - 这是包管理器控制台的输出
PM> Install-Package Microsoft.AspNet.WebApi.OData
Attempting to resolve dependency 'Microsoft.Net.Http (= 2.0.20710.0 …Run Code Online (Sandbox Code Playgroud)