在MVC + Repository Pattern + Entity Framework中提取HttpContext.Current以进行注入

时间:2011-04-21 21:27:36

标签: asp.net-mvc-2 ninject

昨天我问了一个问题,并在Repository中使用ObjectContext。我试图辨别“开放的上下文传递给控制器​​”的模式是“健康的”还是反对模式。互联网的简短回答是,通常最好每个请求创建一个ObjectContext并使用HttpContext.Current来完成。我目前正在使用Entity Framework 4.0,它在我实例化模型时生成我的ObjectContext。我想我理解这一点,因为我需要确保每当调用HttpContext.Current时我都可以从项目中提取我的ObjectContext,但我不喜欢使用具体类的想法因为我不知道我是否将永远使用这个EF模型。我想让HttpContext.Current返回一些注入的内容,以便Ninject可以使用我的具体类连接一个新的上下文(这应该可以让以后更容易切换),其中包含一个用于我的EF模型的开放ObjectContext。

我以前是.Net 2.0开发人员的WebForms,所以试图理解这些新东西目前有点慢。 HttpContext是否与Session相当,但仅适用于无状态页面请求?比如,它是在发出请求时生成的,一旦页面被渲染就会被处理掉?

实际扩展HttpContext.Current对象以返回包含我的ObjectContext的类的实例所涉及的语义是什么?

我真的希望一切都有道理。我的眉头皱起了眉头,试着把问题写进去。任何关于此的指导或文章都将非常感谢!谢谢!

(我正在使用ASP.Net 4.0,MVC 2,Entity Framework 4.0,Visual Studio 2010,Ninject 2.2.1并使用存储库模式)

0 个答案:

没有答案