MVC& EF - 使用

时间:2010-06-16 14:47:27

标签: asp.net asp.net-mvc

我正在使用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>...........
        ..............

2 个答案:

答案 0 :(得分:3)

您需要先枚举您的收藏品,然后再将其传递到您的视图中。像这样:

 return View(_info.ToArray());

实际上,您正在使用use,因此在执行加载信息实体的请求时,您的datacontext不再存在。因此,您需要指示它在处理之前执行此请求。

答案 1 :(得分:0)

您是否尝试从对象获取某些子信息?这可能会导致问题,因为您不再与数据库建立连接。

您使用的是什么版本的MVC和EF?

如果是3.5则没有或有限的延迟加载。

如果是4,则可能需要将延迟加载设置为true。