我在ASP Net CORE mvc项目中遇到这个错误很麻烦,我找不到解决方法:
A second operation started on this context before a previous operation
completed. Any instance members are not guaranteed to be thread safe
它附加在非异步函数上:
public Employee GetEmployeeByuserID(String userID)
{
return _applicationDBContext.Employee.Where(e => e.UserId.Equals(userID)).First();
}
我尝试将此函数设为异步,但它只是将错误附加到其他位置。
该函数在DAL中,依赖注入_applicationDBContext。 声明的Dal在startup.cs中的AddTransient中声明 我已经看到了一些等待的解决方案,但我找不到我想把它放在哪里。
修改
如果我在return _applicationDBContext.Employee.Where(e => e.UserId.Equals(userID)).First();
之前创建了一个断点来暂停代码
并继续,它运作良好。
答案 0 :(得分:0)
我终于通过为每个请求创建一个新的DAL来实现它:
Employee emp = new EmployeeDal(new ApplicationDbContext()).GetEmployeeByuserID(appUser.Id);
如果您有更好的解决方案,请告诉我。