我在 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;
}
当我尝试这个时,我在这行 return await queryResult that cannot await bool 中收到错误。
最佳答案
Single()
返回 <T>
, 不是 Task<T>
.你要的是SingleAsync()
:
return await authorizationContext.Database
.SqlQuery<bool>(sqlStatement)
.SingleAsync();
此外,您不能在 using 语句之外使用 await,因为这样您的数据库上下文将在异步操作完成之前被释放。
关于c# - 返回 bool 的异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35420838/