Я работаю над приложением для Windows Phone 7, которое выполняет асинхронные запросы к OData.Я использую следующую общую форму для запроса:
DataServiceQuery<Entity> query = ourEntities.CreateQuery<Entity>("Entities");
entities.BeginExecute(QueryComplete, query);
У меня проблемы с добавлением фильтров к этим запросам.Использование LINQ, по-видимому, не подходит для асинхронных запросов, поэтому я попытался добавить фильтры OData, используя метод AddQueryOption, упомянутый в этой статье (пытаясь получить результаты, когда идентификатор равен 1):
query.AddQueryOption("$filter", "Id eq 1");
Если мы возьмем URL-адрес из асинхронного результата и вставим его в браузер, он будет работать правильно и вернет ожидаемый результат.Однако попытка оценить результат запроса всегда приводит к NotSupportedException без сообщения или трассировки внутреннего стека.
В идеале я хотел бы иметь возможность использовать LINQ, как Скотт Хансельман в своем сообщение в блоге о OData .Если это не вариант для асинхронного извлечения данных, как я могу добиться фильтрации по запросу?