|
2
|
| CodingInsomnia · 技术社区 · 16 年前 |
|
|
1
1
LoadAsync需要DataServiceQuery的原因是普通IQueryable没有定义执行查询的异步方式。该方法将IQueryable类型作为其参数的原因是,用户不必显式地将查询对象强制转换为DataServiceQuery(使代码更短),而且由于我们假设用户将尝试至少运行一次代码,因此他们会立即看到错误(如您所做)。 LoadAsync只支持异步操作,因此需要DataServiceQuery。如果已经有了结果(无需执行异步请求),则可以调用Load方法。这是你第二个问题的答案。不必在设计时和运行时都调用LoadAsync,您可以在设计时使用Load,在运行时使用LoadAsync。但是由于跟踪限制,您可能需要以不同的方式创建DataServiceCollection。 像这样:
如果在caling Load之前将DataServiceContext传递给构造函数,那么将跟踪实体(就像LoadAsync情况一样)。如果不需要,可以调用采用IEnumerable和TrackingMode的构造函数并关闭对它的跟踪。 |