【发布时间】:2010-09-30 15:29:51
【问题描述】:
我正在为 Windows Phone 7 开发一个对 OData 进行异步查询的应用程序。我使用以下一般形式进行查询:
DataServiceQuery<Entity> query = ourEntities.CreateQuery<Entity>("Entities");
entities.BeginExecute(QueryComplete, query);
不过,我在为这些查询添加过滤器时遇到了麻烦。使用 LINQ 似乎不是异步查询的一个选项,因此我尝试使用 this article 中提到的 AddQueryOption 方法添加 OData 过滤器(尝试获取 Id 为 1 时的结果):
query.AddQueryOption("$filter", "Id eq 1");
如果我们从异步结果中获取 URL 并将其粘贴到浏览器中,它会正常工作并返回预期的结果。但是,尝试评估查询结果似乎总是会导致 NotSupportedException 没有消息或内部堆栈跟踪。
理想情况下,我希望能够使用 LINQ,就像 Scott Hanselman 在他的 blog post about OData 中所做的那样。如果这不是异步数据检索的选项,我该如何实现对查询的过滤?
【问题讨论】:
标签: windows-phone-7 odata