AsEnumerable возвращает значение, параметры фильтра не

AsEnumerable возвращает значение, но без него не возвращает значение.

Кажется, у меня проблема с извлечением определенного значения из моего odataQueryservice.

        ODataQueryService ax = new ODataQueryService(new Uri(Link));

        double test = double.NaN;
        try
        {
            test = ax.InventTable.Where(X => X.InventTable_ItemId == "030001").Select(x => x.InventTable_Width).FirstOrDefault();
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }

Возвращает ошибку:

System.Data.Services.Client.DataServiceQueryException: An error occurred while processing this request. ---> System.Data.Services.Client.DataServiceClientException: <?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
  <code></code>
  <message xml:lang="da-DK">An error occurred while processing this request.</message>
</error>
   at System.Data.Services.Client.QueryResult.ExecuteQuery()
   at System.Data.Services.Client.DataServiceRequest.Execute[TElement](DataServiceContext context, QueryComponents queryComponents)
   --- End of inner exception stack trace ---
   at System.Data.Services.Client.DataServiceRequest.Execute[TElement](DataServiceContext context, QueryComponents queryComponents)
   at System.Data.Services.Client.DataServiceQuery`1.Execute()
   at System.Data.Services.Client.DataServiceQuery`1.GetEnumerator()
   at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
   at System.Data.Services.Client.DataServiceQueryProvider.ReturnSingleton[TElement](Expression expression)
   at System.Data.Services.Client.DataServiceQueryProvider.Execute[TResult](Expression expression)
   at System.Linq.Queryable.FirstOrDefault[TSource](IQueryable`1 source)

но это

        ODataQueryService ax = new ODataQueryService(new Uri(Link));

        double test = double.NaN;
        try
        {
            test = ax.InventTable.AsEnumerable.Where(X => X.InventTable_ItemId == "030001").Select(x => x.InventTable_Width).FirstOrDefault();
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }

возвращает фактическое значение, но загружает всю таблицу... Как-нибудь, чтобы избежать этого, или почему я получаю первую ошибку в первую очередь?

0 ответов

Другие вопросы по тегам