這個問題是關係到this:實體框架:已經有與此命令相關聯的打開的DataReader,必須先關閉
我的倉庫方法有以下代碼:
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) ;
}
我的HTML有這代碼:
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.applicantPosition.Applicant.name)
</td>
<td>
@Html.DisplayFor(modelItem => item.applicantPosition.Position.name)
</td>
完整的例外是:
已經有一個與此命令關聯的打開DataReader,它必須先關閉。
正是在的HTML @ Html.DisplayFor(modelItem => item.applicantPosition.Applicant.name)
當我重新實現了兩個相似的模型類以從使用TPH繼承結構的模型基類繼承時發生這種相同的錯誤,其中一個派生類存在一對一或一對一的關係,並且我正在使用該模型的控制器中的急切加載。據我所知,在這種情況下不支持急切的加載,因此在控制器中放棄此屬性的'.Include(...)',並將'.ToList()'添加到剩下的''的末尾。包括(...)'語句似乎解決了問題 - 謝謝。 –