gpt4 book ai didi

asp.net-mvc - Entity Framework : There is already an open DataReader associated with this Command which must be closed first

转载 作者:行者123 更新时间:2023-12-04 04:44:13 25 4
gpt4 key购买 nike

这个问题与this有关:

我的存储库方法具有以下代码:

 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>

完整的异常(exception)是:

已经有一个与此命令关联的打开的 DataReader,必须先关闭它。

它被扔在 HTML 的第一行
@Html.DisplayFor(modelItem => item.applicantPosition.Applicant.name)

最佳答案

快速解决方案:

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).ToList() ;
}

如果您想知道为什么这可以解决您的问题,请阅读有关 LINQ 和 的信息。延期执行 作品。简而言之 - 如果您不通过 ToList 的“枚举”查询“强制”执行选择,实际上它执行得太晚了 - 在 View 中。这给想要使用相同连接的其他查询带来了麻烦。

关于asp.net-mvc - Entity Framework : There is already an open DataReader associated with this Command which must be closed first,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7927990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com