我在C#中有一个Async方法,它调用返回true或false的SQL函数,方法返回true或false的bool变量.
这是我的方法:
public async Task<bool> Canlog(string userName, string pass
{
Context context = new Context();
bool queryResult = false;
using (context )
{
using (context .Database.Connection)
{
context .Database.Connection.Open();
string sqlStatment = .....
queryResult = authorizationContext.Database
.SqlQuery<bool>(sqlStatment)
.Single();
}
}
return await queryResult;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,我在这行返回错误await queryResult,无法等待bool.
Single()回报<T>,而不是Task<T>.你想要的是SingleAsync():
return await authorizationContext.Database
.SqlQuery<bool>(sqlStatement)
.SingleAsync();
Run Code Online (Sandbox Code Playgroud)
此外,您不能在using语句之外等待,因为在异步操作强制执行之前,您的数据库上下文将被释放.
| 归档时间: |
|
| 查看次数: |
1113 次 |
| 最近记录: |