我想异步获取一个实体。我知道如何异步获取集合,但不是单个对象。这是我获取集合的代码:
MoviesService.Container _proxy;
_proxy在构造函数中初始化。这是另一个代码:
private async void Button_Click(object sender, RoutedEventArgs e)
{
IQueryable<MoviesService.Title> query = _proxy.Titles;
var titles = await GetTitlesAsych(query);
DataServiceCollection<MoviesService.Title> collection = new DataServiceCollection<MoviesService.Title>();
collection.Load(titles);
this.DataContext = collection;
}
private Task<IEnumerable<MoviesService.Title>> GetTitlesAsych(IQueryable<MoviesService.Title> query)
{
DataServiceQuery<MoviesService.Title> dsQuery = (DataServiceQuery<MoviesService.Title>)(query);
return Task.Factory.FromAsync<IEnumerable<MoviesService.Title>>(dsQuery.BeginExecute, dsQuery.EndExecute, null);
}
我很困惑如何更改它,以便它可以用于获得单个实体。
我正在使用web api 2.
答案 0 :(得分:0)
异步加载结果集作为集合。该列表将包含0或1个项目。然后,同步使用Enumerable.SingleOrDefault
。
我只想说,默认情况下你不应该在服务器上使用异步。在需要时使用它。