我正在创建一个ASP.NET Web窗体.我创建了一个User继承自的类IUser<string>.在另一个ApplicationUserStore继承自的类中,IUserStore<User>我有两个错误(两个方法都有相同的错误).
在里面
public async Task<User> FindByNameAsync(string userName)
{ return await database.Users.Where(x => x.Username == userName).First(); }
Run Code Online (Sandbox Code Playgroud)
和
public async Task<User> FindByIdAsync(string userId)
{ return await database.Users.Where(x => x.Id == userId).First(); }
Run Code Online (Sandbox Code Playgroud)
methdos我得到错误:无法等待用户.
为什么?我该怎么办?
谢谢!
First()不是异步感知方法.它只是同步执行查询.你想要的是FirstAsync(),一个定义的扩展方法System.Data.Entity.所以添加:
using System.Data.Entity;
Run Code Online (Sandbox Code Playgroud)
对您的班级,并修改您的代码,如下所示:
public async Task<User> FindByNameAsync(string userName)
{
return await database.Users.Where(x => x.Username == userName).FirstAsync();
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为FirstAsync返回一个等待的任务.
| 归档时间: |
|
| 查看次数: |
492 次 |
| 最近记录: |