What is the best way to instantiate and dispose DbContext in MVC?

前端 未结 3 1677
有刺的猬
有刺的猬 2020-12-04 18:22

MVC 3 + EF 4.1

I\'m choosing between two approaches to deal with DbContext:

  1. Instantiate in Application_BeginRequest, put it into Ht
3条回答
  •  醉话见心
    2020-12-04 18:54

    We currently use repositories injected with UoW (unit of work) instantiated via service locator from an repository factory. Unity controls the lifetime this way taking the work away from you.

    Your particular implementation will vary depending if your using POCO's, Entity Objects, etc..

    Ultimately you want UoW if your going to be working with more than one objectset in your controller to ensure your just using one context. This will keep your transactions in check etc.

    If your going to use multiple objectcontexts (ie. multiple EDMX's), you'll want to look at using UoW with MSDTC...but thats probably more than you wanted to know. In the end, the important thing is to ensure you just instantiate what you need for the controller action (i.e. one instance of the context.). I don't think I'd go with Begin_Request, you may not even need the context for every request.

提交回复
热议问题