Когда вы пишете следующее:
var candidaturas = db.Candidaturas.Where(x => x.PropostaId == candidatura.PropostaId);
вы действительно не закрываете DataReader
.Поэтому, когда вы открываете другую DataReader
db.Candidaturas.SingleOrDefault(u =>
u.CandidaturaId == c.CandidaturaId).CandidaturaRejeitada = true;
, вы получаете ошибку.Вы должны закончить первое утверждение с .ToList()
или ToArray()
или чем-то подобным.Это даст вам фактический результат вместо IEnumerable
. В качестве отдельного комментария очень плохая идея написать db.Propostas.SingleOrDefault(x => x.PropostaId == candidatura.PropostaId).CandidaturaAceite
(у вас есть несколько таких).Если результат null
равен , а не , используйте Single()
вместо SingleOrDefault()
.Если это возможно , проверьте наличие null
до получения дочернего поля - в противном случае вы получите NullException