C# 在上一个操作完成之前,在此上下文上启动了第二个操作
对上下文类型“Cdn.Data.ApplicationDbContext”的查询结果进行迭代时发生异常。 System.InvalidOperationException:在上一个操作完成之前,在此上下文上启动了第二个操作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
<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从何而来?