【发布时间】:2012-04-25 16:01:49
【问题描述】:
我的控制器中有几个操作返回 EF 实体的 IEnumerable。
我正在考虑让这些操作方法返回一个列表(只是在将它传递回视图之前调用一个 model.ToList())。
我考虑这样做的原因有两个:
- 首先,我正在测量 BaseController 类(onactionexecuted/onactionexecuting)中每个 actionmethods 的性能,如果我返回一个 IEnumerable,那么直到 onactionexecuted 方法之后才会执行查询。
- 其次,我计划在 OnActionExecuted 中处理我的“服务层”使用的连接,但是如果我在那里处理它们,视图会因未检索到模型而失败。
我的问题是,这样做有什么缺点吗? 我很确定每个 IEnumerable 模型都会被完全遍历,因此检索不会使用的数据不会有问题。
感谢您的帮助。
【问题讨论】:
-
在将数据交给视图之前,您确实应该确保查询已具体化(执行)。调用
ToList()是一种方法。
标签: asp.net-mvc performance entity-framework