KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
My goal is to have one data context ( MainDbContext ) per HTTP request in ASP.NET MVC and dispose the data context when the request ends. I'm using the following StructureMap configuration: public static class ContainerConfigurer { public static void Configure() { ObjectFactory.Initialize(x => { x.For<MainDbContext>().HttpContextScoped(); }); } } Whenever I need a MainDbContext , I'm using this code: var dbContext = ObjectFactory.GetInstance<MainDbContext>(); This is working as expected: only one data context is being created per HTTP request. The problem is, MainDbContext is not being disposed at the end of the request. How can I configure my ObjectFactory to dispose the data context when the HTTP request finishes? Or is this just something I need to do manually using Application_EndRequest() in Global.asax. Update I just tried adding the following code to Global.asax: protected virtual void Application_EndRequest() { ObjectFactory.GetInstance<MainDbContext>().Dispose(); } As expected, this solves the problem. I'm still wondering if there's any way to do this automatically with StructureMap, however.
Tags (comma-separated)
Save Edits
Cancel