我正在开发一个MVC3应用程序,并一直在想着以下内容。是否应在将数据传递给视图之前处置实体框架对象(DbContext
对象?
这个问题的一个明显问题是你将无法深入研究外键关系。
这样做是否会影响性能?
答案 0 :(得分:4)
是的,你绝对应该处理上下文 性能打击应该是最小的。任何可以处理的物体都应该一直处理掉。 如果正确完成,依赖注入可以让您不必担心调用它,因为如果指示DI框架将为您处理它。
答案 1 :(得分:2)
不要将EF实体传递到视图中,请使用视图模型模式。并且不要过分依赖延迟加载,它会表现不佳。使用Include方法急切加载所需的对象。
是的,你需要处理(或者最好使用),否则你的系统会泄漏连接,并且可能会在非常重要的负载下饿死池。
答案 2 :(得分:2)
同意Adam Tuliper的回答。另外,如果您需要访问相关对象,可以使用.Include(o => o.EntityName)方法来确保数据包含在数据检索中。
此博客正在撰写关于加载相关对象的文章: http://blogs.msdn.com/b/adonet/archive/2011/01/31/using-dbcontext-in-ef-feature-ctp5-part-6-loading-related-entities.aspx
答案 3 :(得分:1)
如果,通过" entityframe工作对象"你的意思是DbContext对象,然后不,不要担心它。
...此外,这应该是一个控制器级别的对象,而不是一级视图。