C# 在上一个操作完成之前,在此上下文上启动了第二个操作

C# 在上一个操作完成之前,在此上下文上启动了第二个操作,c#,asp.net,blazor,blazor-server-side,C#,Asp.net,Blazor,Blazor Server Side,对上下文类型“Cdn.Data.ApplicationDbContext”的查询结果进行迭代时发生异常。 System.InvalidOperationException:在上一个操作完成之前,在此上下文上启动了第二个操作 <MatButton OnClick="@ApplyChanges">Apply</MatButton> private async Task ApplyChanges() { IsDial

对上下文类型“Cdn.Data.ApplicationDbContext”的查询结果进行迭代时发生异常。 System.InvalidOperationException:在上一个操作完成之前,在此上下文上启动了第二个操作

    <MatButton OnClick="@ApplyChanges">Apply</MatButton>

    private async Task ApplyChanges()
    {
        IsDialogOpen = false;
        if (SelectedRole != null)
        {        
            Console.WriteLine("Begin IsInRoleAsync");
            if (!await UserManager.IsInRoleAsync(CurrentUser, SelectedRole))
            {
                Console.WriteLine("End IsInRoleAsync");
                Console.WriteLine("Begin AddToRoleAsync");
                await UserManager.AddToRoleAsync(CurrentUser, SelectedRole);
                Console.WriteLine("End AddToRoleAsync");
            }
            else
            {
                Console.WriteLine("End IsInRoleAsync");
            }
        }
        if (NewUsername != null)
        {
            Console.WriteLine("Begin SetUserNameAsync");
            await UserManager.SetUserNameAsync(CurrentUser, NewUsername);
            Console.WriteLine("End SetUserNameAsync");
        }
        CurrentUser = null;
    }
应用
专用异步任务ApplyChanges()
{
IsDialogOpen=false;
if(SelectedRole!=null)
{        
WriteLine(“Begin-IsInRoleAsync”);
如果(!await UserManager.IsInRoleAsync(CurrentUser,SelectedRole))
{
WriteLine(“End IsInRoleAsync”);
WriteLine(“Begin AddToRoleAsync”);
等待UserManager.AddToRoleAsync(CurrentUser,SelectedRole);
WriteLine(“End AddToRoleAsync”);
}
其他的
{
WriteLine(“End IsInRoleAsync”);
}
}
if(NewUsername!=null)
{
WriteLine(“Begin SetUserNameAsync”);
等待UserManager.SetUserNameAsync(CurrentUser,NewUsername);
WriteLine(“End-SetUserNameAsync”);
}
CurrentUser=null;
}

这很奇怪,因为我没有同时执行任何操作,当我单击按钮两次(有时差)时会发生这种情况,有时单击按钮一次时也会发生这种情况。

检查此项,我尝试过,但未成功。您的连接字符串是否包括:
;MultipleActiveResultSets=true
?在UserManager或其他Id类上还有哪些其他操作?selectedRole从何而来?检查此项我已尝试过,但未成功。您的连接字符串是否包括:
;MultipleActiveResultSets=true
?在UserManager或其他Id类上还有哪些其他操作?selectedRole从何而来?