2

ここにある次の回答に取り組んでいました: 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 経由で get を実行しようとすると、次のエラーが発生します。

「戻り値の型が 'System.Web.Http.OData.PageResult`1[[ODataTest_Solution.DTO.Category, ODataTest Solution, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] のコントローラー 'Values' に対するアクション 'Get' ]]' はクエリをサポートできません。返されるコンテンツのタイプが IEnumerable、IQueryable、またはいずれかのインターフェイスの汎用形式であることを確認してください。"

IQueryable を返すようにメソッドを変更すると、明らかに問題なく動作します。

私が間違っているかもしれないことは何ですか?

4

1 に答える 1