Веб-API AspNetCore с OData $ select возвращает ноль - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть решение для веб-API с настроенной конечной точкой Odata, и оно работает довольно хорошо со всеми параметрами, кроме $ select.

, поэтому у меня есть расширение, написанное для поддержки Odata, и вот код,

  private static QueryResult<T> Execute<T>(IQueryable<T> queryable, ODataQueryOptions<T> queryOptions)
        {
            try
            {
                var value = (queryOptions.ApplyTo(queryable) as IQueryable<T>);  //here returns null
                var result = value.ToList();
                int? count = null;
                if (queryOptions.Count != null && queryOptions.Count.Value)
                {
                    var countQuery = queryOptions.ApplyTo(
                    queryable,
                    AllowedQueryOptions.Skip | AllowedQueryOptions.Top | AllowedQueryOptions.OrderBy
                    ) as IQueryable<T>;
                    count = countQuery.Count();
                }
                var queryResult = new QueryResult<T>
                {
                    Value = result,
                    Count = count.HasValue ? count.Value.ToString() : null
                };
                return queryResult;
            }
            catch (System.Exception ex)
            {
                throw;
            }
        }

Я передаю запрос в URL следующим образом:

https://localhost:44358/api/v2.0/data/clients?productId=bfe2e306-2471-455d-a2a3-4027522d5a20&$select=clientName
...