gpt4 book ai didi

c# - "Cannot support querying" Controller 错误

转载 作者:行者123 更新时间:2023-12-02 09:37:00 25 4
gpt4 key购买 nike

我正在研究此处找到的以下答案:Web API OData Inlinecount not working

这是我的 Controller ,其中提供了一些虚拟数据。

[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 进行获取时,出现以下错误:

"The action 'Get' on controller 'Values' with return type 'System.Web.Http.OData.PageResult`1[[ODataTest_Solution.DTO.Category, ODataTest Solution, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' cannot support querying. Ensure the type of the returned content is IEnumerable, IQueryable, or a generic form of either interface."

如果我更改它的方法以返回 IQueryable,它显然工作得很好。

知道我可能做错了什么吗?

最佳答案

我已经尝试过您的 ValuesController,它工作得很好。

您的问题可能是您向此操作添加了 [Queryable] 属性。如果您使用 ODataQueryOptions,则无需使用 [Queryable],因为您自己应用查询,无需操作筛选器。

关于c# - "Cannot support querying" Controller 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16020799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com