首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >统一生命周期管理器& EF数据上下文->最佳实践

统一生命周期管理器& EF数据上下文->最佳实践
EN

Stack Overflow用户
提问于 2013-08-15 12:57:16
回答 1查看 10.9K关注 0票数 12

全,

有很多关于经理的帖子,但我还没有找到一个人说“在这种情况下,你应该始终使用X”,这是很好的经验法则。让我描述一下我的应用程序,我有一个ASP.NET MVC 4 Web应用程序。我有一个Visual解决方案,包含3个项目,我的“核心”项目(它包含了我所有的EF材料),一个测试项目,以及MVC Web项目。我正在使用,现在有以下代码:

代码语言:javascript
复制
// Context
container.RegisterType<IDatabaseFactory, DatabaseFactory>(
    new ContainerControlledLifetimeManager();
container.RegisterType<UnitOfWork>(
    new ContainerControlledLifetimeManager());

然而,我注意到我的上下文并不是用每一个新的web请求重新创建的,这正是我想要的(如果我在这个假设中错了,请告诉我)。我很难分析下面列出的站点中的所有信息,并且阅读了很多人创建自己的类PerHttpRequestLifetimeManager来处理这个问题的文章。

这里真正的最佳实践是什么?

  1. 理解微软开发人员网络( http://msdn.microsoft.com/en-us/library/ff660872(v=PandP.20).aspx )的终身管理人员
  2. 通过CodeProject - http://www.codeproject.com/Articles/424743/MVC-DI-Unity-with-Lifetime-Manager与生命周期管理器的MVC DI & Unity
  3. ASP.NET MVC提示:通过Shiju的博客- http://weblogs.asp.net/shijuvarghese/archive/2008/10/24/asp-net-mvc-tip-dependency-injection-with-unity-application-block.aspx使用统一应用程序块进行依赖注入
  4. MVC,EF - DataContext每个Web单例实例-通过堆栈溢出在统一中的请求- MVC,EF - DataContext单例实例-统一中的每个Web请求
  5. 跨几种类型通过堆栈溢出- 跨几种类型使用统一注入相同的DataContext实例注入相同的统一实例
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-16 01:49:16

是的,每个请求通常需要一个DbContext。

在每个请求上创建的PerHttpRequestLifetimeManager或子容器是这种处理的典型方式。

统一的最新版本介绍了面向ASP.NET MVC的统一引导程序,它有一个新的内置终身管理器:PerRequestLifetimeManager

您可以在使用统一的依赖注入开发人员指南第3章,依赖注入与统一中阅读更多内容。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18253100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档