2011-07-12 102 views
1

所以这可能是一个愚蠢的问题,但我仍然不完全确定实体框架对象是如何工作的。我在MVC3应用程序中使用EF4,并且有两个控制器需要对它使用相同的LINQ查询。最好使用一个静态方法,它通过ref来获取数据库实体,或者该方法是否使用“使用”块作为自己的实体(如this question所示)?使用EF的常见LINQ方法

我会认为使用块会增加额外开销,但我没有找到其他方法的任何示例。是否有适当的方法为EF访问创建“库”方法?

回答

0

在MVC应用程序中,ObjectContext应该限定为请求的范围。大多数DI容器可以自动执行此操作。所以你宁愿而不是在方法中使用using块。而是通过构造函数注入上下文或将其作为方法参数传递。

+0

谢谢你的解释,但在这种情况下DI代表什么? – Tyrsius

+0

依赖注入。示例容器是AutoFac,结构图和NInject。你也可以在global.asax.cs中自己做。 –