YMC*_*YMC 30 asp.net-mvc entity-framework poco entity-framework-4.1 dbcontext
MVC 3 + EF 4.1
我在两种方法中选择处理DbContext:
Application_BeginRequest,投入
HttpContext.Current.Items和处置Application_EndRequest.DbContext),并启动每个控制器操作using(var unitOfWork = new
UnitOfWork()) { ... }请分享您的经验:您更喜欢哪一个?每种方法的利弊是什么?
Era*_*nga 18
我建议你使用依赖注入框架.您可以DbContext根据要求注册
container.RegisterType<MyDbContext>().InstancePerHttpRequest();
Run Code Online (Sandbox Code Playgroud)
并将其作为构造函数参数注入控制器.
public class MyController : Controller
{
public MyController(MyDbContext myDbContext)
{
_myDbContext = myDbContext;
}
}
Run Code Online (Sandbox Code Playgroud)
如果注册类型实现,IDisposable那么DI框架将在请求结束时处理它.
第一种方法:使用ID框架要比手动实现它要清晰得多.此外,您的所有请求可能都不需要您的UoW.
第二种方法:控制器不应该知道如何构建你的UoW(DbContext).目的不是减少组件之间的耦合.
| 归档时间: |
|
| 查看次数: |
12473 次 |
| 最近记录: |