我正在使用ASP.NET MVC和EF,在我的控制器中我使用的是这样的东西:
public ActionResult Index()
{
using (MyEntities db = new MyEntities())
{
var _info = db.INFORMATION;
return View(_info);
}
}
它会引发以下错误。 (如果我使用使用语句)
错误:
ObjectContext实例已被处理,不能再用于需要连接的操作。
在我的视图中,我这样称呼:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MVC_EF_Model.INFORMATION>" %>
<% foreach (var item in Model) { %>
<tr>...........
..............
答案 0 :(得分:3)
您需要先枚举您的收藏品,然后再将其传递到您的视图中。像这样:
return View(_info.ToArray());
实际上,您正在使用use,因此在执行加载信息实体的请求时,您的datacontext不再存在。因此,您需要指示它在处理之前执行此请求。
答案 1 :(得分:0)
您是否尝试从对象获取某些子信息?这可能会导致问题,因为您不再与数据库建立连接。
您使用的是什么版本的MVC和EF?
如果是3.5则没有或有限的延迟加载。
如果是4,则可能需要将延迟加载设置为true。