从方法返回通用任务时发生转换错误
Conversion errors when returning a generic task from a method
我已经创建了一种方法来 return 来自 Azure 移动服务查询的任务。
但是当我为方法设置 return 类型时,即 Task
我得到这些指向方法的 return 部分的错误:
我试图通过使用通用 ILIst 来解决这个问题,但它似乎不能用于异步方法。
有谁知道如何更正此方法中的 return 类型错误?
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;
}
这个:
await query.ToListAsync();
return items;
尝试 return Task<List<Item>>
,而你的 return 类型是 Task<Item>
。目前,您的查询是 return 一个集合,而不是单个项目。目前的实现方式,return 类型应该是 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();
}
方法 return 是一个 Task<Item>
,但该方法的异步性质会为您处理 Task<>
部分。您的代码应该只是 returning 一个 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()
意味着这是 returning collection 项,而不是单个项。您要 return collection 中的特定项目吗?是这样的吗?:
return await query.ToListAsync().Single(i => i.SomeProperty == someValue);
或者您实际上想要 return collection?在这种情况下,return 类型可能应该是 collection 类型。像这样:
public async static Task<IList<Item>> QueryTable()
{
// ...
}
重点是 await
关键字为您创建了 Task<>
,您需要做的就是 return Task<>
.[=20 中的类型=]
我已经创建了一种方法来 return 来自 Azure 移动服务查询的任务。
但是当我为方法设置 return 类型时,即 Task
我得到这些指向方法的 return 部分的错误:
我试图通过使用通用 ILIst 来解决这个问题,但它似乎不能用于异步方法。
有谁知道如何更正此方法中的 return 类型错误?
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;
}
这个:
await query.ToListAsync();
return items;
尝试 return Task<List<Item>>
,而你的 return 类型是 Task<Item>
。目前,您的查询是 return 一个集合,而不是单个项目。目前的实现方式,return 类型应该是 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();
}
方法 return 是一个 Task<Item>
,但该方法的异步性质会为您处理 Task<>
部分。您的代码应该只是 returning 一个 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()
意味着这是 returning collection 项,而不是单个项。您要 return collection 中的特定项目吗?是这样的吗?:
return await query.ToListAsync().Single(i => i.SomeProperty == someValue);
或者您实际上想要 return collection?在这种情况下,return 类型可能应该是 collection 类型。像这样:
public async static Task<IList<Item>> QueryTable()
{
// ...
}
重点是 await
关键字为您创建了 Task<>
,您需要做的就是 return Task<>
.[=20 中的类型=]