全,
有很多关于经理的帖子,但我还没有找到一个人说“在这种情况下,你应该始终使用X”,这是很好的经验法则。让我描述一下我的应用程序,我有一个ASP.NET MVC 4 Web应用程序。我有一个Visual解决方案,包含3个项目,我的“核心”项目(它包含了我所有的EF材料),一个测试项目,以及MVC Web项目。我正在使用,现在有以下代码:
// Context
container.RegisterType<IDatabaseFactory, DatabaseFactory>(
new ContainerControlledLifetimeManager();
container.RegisterType<UnitOfWork>(
new ContainerControlledLifetimeManager());然而,我注意到我的上下文并不是用每一个新的web请求重新创建的,这正是我想要的(如果我在这个假设中错了,请告诉我)。我很难分析下面列出的站点中的所有信息,并且阅读了很多人创建自己的类PerHttpRequestLifetimeManager来处理这个问题的文章。
这里真正的最佳实践是什么?
发布于 2013-08-16 01:49:16
是的,每个请求通常需要一个DbContext。
在每个请求上创建的PerHttpRequestLifetimeManager或子容器是这种处理的典型方式。
统一的最新版本介绍了面向ASP.NET MVC的统一引导程序,它有一个新的内置终身管理器:PerRequestLifetimeManager。
您可以在使用统一的依赖注入开发人员指南第3章,依赖注入与统一中阅读更多内容。
https://stackoverflow.com/questions/18253100
复制相似问题