加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – EF,UoW和Repository – 何时在WebForms中部署UnitOfW

发布时间:2020-12-16 07:04:46 所属栏目:asp.Net 来源:网络整理
导读:最近,我开始深入研究Repository Patterns和UnitOfWork的概念,同时探索EntityFramework. 基于MVC示例制作了我自己的实现,他们从Controller中处理UnitOfWork,如下所示: protected override void Dispose(bool disposing){ unitOfWork.Dispose(); base.Dispose
最近,我开始深入研究Repository Patterns和UnitOfWork的概念,同时探索EntityFramework.

基于MVC示例制作了我自己的实现,他们从Controller中处理UnitOfWork,如下所示:

protected override void Dispose(bool disposing)
{
    unitOfWork.Dispose(); 
    base.Dispose(disposing);
}

我根本没有进入MVC,而且在Webforms中也很新,但是我认为它们会覆盖Controller dispose方法,以便将UnitOfWork作为“其他所有内容”处理掉.

基本上我想在我的ASP.NET WebForms网站中实现相同的概念,并将页面代码后面使用的UnitOfWork与处理页面本身一起处理.

我考虑过从生命周期中添加相同的Page_Unload事件,但我不确定这是否是正确的方法,因为我之前没有搞过这些事情.我的想法如下:

protected void Page_Unload(object sender,EventArgs e)
{
    unitOfWork.Dispose();
    base.Dispose();
}

我怎样才能安全地实现这一目标,我是否走在正确的轨道上?

解决方法

首先:不要发明轮子.

使用依赖注入框架,如:StructureMap,Ninject,Unity等….

您的UoW应该在Web请求开始时启动,并在请求结束时处理.

换句话说:EF的DataContext应该在请求启动时初始化.然后你可以将它存储在某个地方(Session,…),它可以被重用于该请求.每个请求一个DataContext实例.

但是如果你自己尝试这样做,那么使用依赖注入框架就会错误地使用它.

该框架可以处理DataContext(UoW)的生命周期.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读