And*_*sen 6 asp.net-mvc entity-framework
我认为在Application_BeginRequest中设置Entity对象上下文,将它存储在Request.items中,在整个请求中使用它并将其部署在Application_EndRequest中是明智的.这样,上下文始终可用,我可以在我的视图中导航实体框架对象图,延迟加载我尚未急切获取的内容.
我认为这会让它像在Ruby on Rails上开发一样.
可能是因为说出这样的异端邪说我应该被枪杀,但它太疯狂了它可能会起作用:)
我无法在ASP.NET MVC上启动Application_BeginRequest和..EndRequest .他们不是被解雇了吗?我需要做什么特别的伎俩?
EF中的对象上下文,如L2S中的数据上下文,被设计为"工作单元",它们不是线程安全的,并且它们的设计并不长久.
在MVC中,最好的策略是在控制器的构造函数中创建一个(隐式或显式,无关紧要),然后将它配置在Dispose方法中.当然,EF不会进行延迟加载,所以你必须找到自己的懒惰方式.:)
ASP.NET MVC的1.0版本允许我在beginrequest和endrequest上连接事件处理程序,新建一个SessionScope并将其存储在beginrequest中的HttpContext.Items中(我切换到Castle ActiveRecord)并在endrequest中从HttpContext中选择sessionscope .Items并处理它.这可以在整个请求生命周期中启用延迟加载.(甚至可以在视图中导航对象图.)
| 归档时间: |
|
| 查看次数: |
2878 次 |
| 最近记录: |