Вторая операция началась в этом контексте до завершения предыдущей операции ASP NET CORE - PullRequest
0 голосов
/ 23 мая 2018

Я столкнулся со многими проблемами с этой ошибкой в ​​проекте 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 объявлен, объявлен в AddTransient в startup.cs Я видел какое-то решение с ожиданием, но я не могу найти, где я должен положить его.

EDIT

Если я установил точку останова, чтобы приостановить код до return _applicationDBContext.Employee.Where(e => e.UserId.Equals(userID)).First(); и продолжить, он будет работать хорошо.

1 Ответ

0 голосов
/ 24 мая 2018

Я наконец заставил его работать, создавая новый DAL каждый запрос:

Employee emp = new EmployeeDal(new ApplicationDbContext()).GetEmployeeByuserID(appUser.Id);

Если у вас есть лучшее решение, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...