У меня проблема, когда я делаю 1 выборку, она работает, но когда я пытаюсь получить 4 звонка одновременно с 1 удачей, а остальные 3 не удается.
public IHttpActionResult GetAll() {
var products = _context.Products
.ToList();
if (products == null)
return NotFound();
return Ok(products.Select(x => CreateDto(x)));
}
Это ошибка
An error has occurred.","ExceptionMessage":"There is already
an open DataReader associated with this Command which must be
closed first.
Когда я гуглю это, они предлагают добавить в строку соединений
MultipleActiveResultSets=True
Затем я получаю еще одну ошибку
ExecuteReader requires an open and available Connection.
The connection's current state is open.
Тогда Google предлагает следующее.То, что я использую dbcontext неправильно ExecuteReader требует открытого и доступного соединения.Текущее состояние соединения: Соединение
Мой dbcontext выглядит так.Так что я не делаю с этим ничего особенного.
public class PContext : DbContext {
public IDbSet<Products> Products{ get; set; }
}
Когда я возвращаю Ok (products.Select (x => CreateDto (x)));в первой строке кода я делаю много отборов и тому подобное.Если я удалю какой-то тяжелый код, то это сработает.Но кажется, что проблема в том, что этот материал не может обрабатывать несколько вызовов.Я имею в виду, что это должно зависеть от размера работы, которую он должен вернуть по окончании.
Есть идеи?