管理dbContext的生命周期

Mar*_*ijn 12 entity-framework dbcontext asp.net-mvc-4

我想将dbContext的生命周期与会话的生命周期联系起来,例如 - 能够在多个请求上提交或放弃对dbcontext上的一组突变的更改.

有没有其他(更好?)方法来实现这一目标?如果不是,那么创建和处理上下文的合适机制是什么?我正在考虑在会话结束时使用清理的静态哈希表,但也许我正在做它所有错误.我也在考虑只关注那些必须在多个请求上工作的上下文,并保持其余的每个操作的想法.有什么建议?

Moh*_*ani 6

您可以使用IoC(Inversion of Control)容器来管理DBContext的生命周期,例如StructureMap,步骤如下:

  1. 安装MVC 4的nuget包:http://nuget.org/packages/StructureMap.MVC4

  2. 阅读快速入门:http: //docs.structuremap.net/QuickStart.htm

  3. 设置DBContext的范围:http://docs.structuremap.net/Scoping.htm

您还可以使用存储库和工作单元模式的组合来提交或放弃对多个请求的dbcontext上的一组突变的更改.