我正在处理此处找到的以下答案:Web API OData Inlinecount not working
这是我的控制器,提供了一些虚拟数据。
[Queryable]
public class ValuesController : ApiController
{
// GET api/values
public PageResult<Category> Get(ODataQueryOptions<Category> queryOptions)
{
var returnValue = new List<Category>()
{
new Category() { Id = 1, Name= "Category 1"},
new Category() { Id = 2, Name= "Category 2"},
new Category() { Id = 3, Name= "Category 3"},
};
IQueryable results = queryOptions.ApplyTo(returnValue.AsQueryable());
return new PageResult<Category>(results as IEnumerable<Category>,
Request.GetNextPageLink(), Request.GetInlineCount());
}
}
当我尝试通过 Fiddler 进行获取时出现以下错误:
“控制器‘值’上的操作‘获取’,返回类型为‘System.Web.Http.OData.PageResult`1[[ODataTest_Solution.DTO.Category,ODataTest 解决方案,版本=1.0.0.0,文化=中性,PublicKeyToken=null ]]' 不支持查询。确保返回内容的类型是 IEnumerable、IQueryable 或任一接口的通用形式。"
如果我将方法更改为返回 IQueryable,它显然可以正常工作。
知道我可能做错了什么吗?