c# - 返回 bool 的异步方法

标签 c#

我在 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/

相关文章:

c# - 通过电子邮件发送带有长名称和重音的附件

c# - 在一台 Mac 上输入电子邮件后,Azure AD 登录空白页面,在另一台上工作吗?

c# 在父级返回时在后台运行异步任务

C#:有什么方法可以跳过多态性中的一个基本调用?

方便动态反射的C#库

c# - UI线程有什么特别之处?

c# - 字节数组到 excel 工作簿

c# - 读取Excel文件!总是出现一个对话框要求保存

c# - 如何在 MVC4 网站 : do I really need to expose my dev environment? 中集成和测试 PayPal

C# LINQ to SQL : Refactoring this Generic GetByID method