我想将dbContext的生命周期与会话的生命周期相关联,例如 – 能够通过多个请求提交或放弃dbcontext上的一组突变上的更改.
有没有其他(更好的)方法来完成这个?如果没有,那么创建和处理上下文的适当机制是什么呢?我正在考虑静态哈希表与会话结束时的清理,但也许我正在做所有错误.我也在考虑只坚持那些必须在多个请求上进行工作的上下文的想法,并保持每个动作的余地.任何建议?
解决方法
您可以使用IoC(控制反转)容器来管理DBContext的生命周期,如StructureMap,具有以下步骤:
>安装MVC 4的nuget软件包:
http://nuget.org/packages/StructureMap.MVC4
>阅读快速入门:
http://docs.structuremap.net/QuickStart.htm
>设置DBContext的范围:
http://docs.structuremap.net/Scoping.htm
此外,您可以使用Repository和工作单元的组合在多个请求上的dbcontext上的一组突变上提交或放弃更改.