MVC和实体框架何时处理实体对象

Tij*_*ija 6 asp.net-mvc entity-framework

什么时候在实体框架和MVC中部署Entities对象上下文对象?

例如,如果我有一个人员表并且我在控制器方法中选择一个记录,则将其丢弃并将其传递回我的视图,然后该记录将无法在视图中使用.

我的视图处理后,我应该以某种方式处理它吗?或者根本不处理它?

Tri*_*dus 1

一种选择是在 Global.asax 的开始请求事件中创建它,并在 Global.asax 的结束请求事件中处理它。每个页面都简单地使用该页面(在 HttpContext.Current.Items 或线程本地存储中存储和获取),而不对其进行处置。这使得您的视图可以使用它来执行延迟加载,但在请求完成后仍将其释放。

另一种选择是确保在调用视图之前已加载所需的所有内容(通过 .First()、.ToList() 和 .Include(property) 以包含导航属性数据)并立即处理它。两种方法都有效。