Следующая Web API конечная точка по-прежнему получает следующее сообщение об ошибке:Асинхронного Web API Endpoint
"A second operation started on this context before a previous asynchronous operation completed."
Поскольку я использую .ToListAsync
с возвращенным из Entity Framework, я предполагаю, что проблема с блокировка линии var user
.
Как сделать эту часть асинхронной?
[Route("Retailers/{search}")]
[HttpGet]
public Task<List<Lookup>> Retailers(string search)
{
var user = UserManager.FindById(User.Identity.GetUserId());
Guid userId = Guid.Parse(user.Id);
var companies = _unitOfWork.GetRepository<Company>().GetAll().Where(c => c.CompanyType == CompanyType.Retail &&
(c.UserID == null || c.UserID == userId) && c.CompanyName.StartsWith(search)).Take(5)
.Select(x => new Lookup { Id = x.Id, Name = x.CompanyName }).ToListAsync();
return companies;
}
Блокировка 'FindById' не вызовет этой проблемы. Я подозреваю, что проблема находится где-то в вашей части абстракции работы. –