我有 mvc3 应用程序,我首先使用 EF 5 代码进行数据访问,我确实收到以下错误消息,但我不明白为什么。
谁能解释为什么会这样,我怎样才能再次避免这个问题?
ObjectContext 实例已被释放,不能再用于需要连接的操作。
我的数据访问代码是:
var list = new List<Task>();
using (var db = new SiteContext())
{
var queryableAll = db.Tasks.AsQueryable();
// setup order descending
queryableAll = (orderByTimeDescending)
? queryableAll.OrderByDescending(x => x.Created)
: queryableAll.OrderBy(x => x.Created);
list.AddRange(queryableAll
.Include("Customer")
.Include("Collection").ToList());
}
return list;
我的观点:
@foreach (var task in Model.Tasks.OrderByDescending(x => x.Created))
{
Html.RenderPartial("_ProjectLine", task);
}
我的部分 _ProjectLine
@model ProjectManagement.DataAccess.Models.Task
<tr>
<td>@Model.TaskId</td>
<td>
@Html.ActionLink(Model.Name, "ManageTask", "Task", new { id = Model.TaskId }, null)
</td>
<td>
@Model.Collection.Name
</td>
<td>@Model.Customer.Name</td>
</tr>
更新:
渲染局部视图时出现异常。我知道如果我删除 using 并将其留给垃圾收集器处理,它可以工作。但我不喜欢这个解决方案。