Esta pregunta está relacionada con this:Entity Framework: Ya hay un DataReader abierto asociado con este comando que debe estar cerrada primera
Mi método repositorio tiene este código:
public IEnumerable<ApplicationPositionHistory> GetApplicationPositionHistories(int applicantId, int positionId)
{
return context.ApplicationsPositionHistory.Where(d => d.applicantPosition.ApplicantID == applicantId && d.applicantPosition.PositionID == positionId).Include(o => o.applicantPosition) ;
}
Mi HTML tiene este código:
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.applicantPosition.Applicant.name)
</td>
<td>
@Html.DisplayFor(modelItem => item.applicantPosition.Position.name)
</td>
La excepción es completa:
Ya hay un DataReader abierto asociado con este comando que debe cerrarse primero.
Fue un tiro en la primera línea del HTML @ Html.DisplayFor (ModelItem => item.applicantPosition.Applicant.name)
Este mismo error ocurrió cuando reimplementé dos clases de modelo similares para heredar de una clase base de modelo usando una estructura de herencia TPH, donde había una relación de uno a cero o uno en una de las clases derivadas, y estaba usando carga ansiosa en el controlador para ese modelo. Por lo que entiendo, la carga ansiosa no es compatible en este caso, por lo que soltar el '.Include (...)' para esta propiedad en el controlador, y agregar '.ToList()' al final de mi 'restante. Las sentencias Include (...) 'parecen haber solucionado el problema, gracias. –