从方法返回泛型任务时的转换错误
本文关键字:转换 错误 任务 方法 返回 泛型 | 更新日期: 2024-10-30 21:21:55
我创建了一个方法,用于从 Azure 移动服务上的查询返回任务。但是当我为方法设置返回类型时,即Task
我收到指向方法返回部分的这些错误:
我试图通过使用通用 ILIst 来解决此问题,但这似乎不能用于异步方法。
有谁知道如何纠正此方法中的返回类型错误?
http://hastebin.com/ziwovovabe.tex
public async static Task<Item> QueryTable()
{
var table = App.MobileService.GetTable<Item>();
IMobileServiceTableQuery<Item> query = table.
OrderBy(item => item.Id);
Task<Item> items = new Task<Item>();
items = await query.ToListAsync();
return items;
}
该方法返回一个Task<Item>
,但该方法的异步性质会为您处理Task<>
部分。 您的代码应该只返回一个Item
。 也许是这样的?
public async static Task<Item> QueryTable()
{
var table = App.MobileService.GetTable<Item>();
IMobileServiceTableQuery<Item> query = table.
OrderBy(item => item.Id);
return await query.ToListAsync();
}
但是,ToListAsync()
意味着这返回的是项的集合,而不是单个项。 是否要从该集合中返回特定项目? 像这样的东西?
return await query.ToListAsync().Single(i => i.SomeProperty == someValue);
或者,也许您真的想退回收藏品? 在这种情况下,返回类型可能是集合类型。 像这样:
public async static Task<IList<Item>> QueryTable()
{
// ...
}
关键是 await
关键字为您创建Task<>
,您需要做的就是返回 Task<>
中的类型 .
这个:
await query.ToListAsync();
return items;
尝试返回Task<List<Item>>
,而返回类型为 Task<Item>
。目前,查询返回的是集合,而不是单个项目。按照目前的实现方式,返回类型应Task<List<Item>>
:
public async static Task<List<Item>> QueryTable()
{
var table = App.MobileService.GetTable<Item>();
IMobileServiceTableQuery<Item> query = table.
OrderBy(item => item.Id);
return await query.ToListAsync();
}