首页 新闻 会员 周边

UnitOfWork类的作用到底是什么?

1
悬赏园豆:30 [待解决问题]

看了一些mvc+repository+ef的文章,总说要建立一个UnitOfWork类用来保证什么,没懂是啥意思,用这个和不用这个有什么区别?

问题补充:

我再编辑一下。

我看到有人说是因为复杂的业务会使用多个Repository,所以导致用了多个DbContext,所以调用DbContext的save的时候就有问题了。

可是我发现用ioc注入的时候,是保证了一个http 请求只使用一个DbContext实例的,这样不就是没上面的问题了???那还要这个UnitOfWork干什么

wdwwtzy的主页 wdwwtzy | 初学一级 | 园豆:114
提问于:2014-02-21 18:49
< >
分享
所有回答(4)
0

应该是单元工作模式,讲dal数据的保存抽出来,放到bll层,这样可以做复杂逻辑,如数据库的几次交互,只需一次保存就行了,我是这样理解的

秋壶冰月 | 园豆:5903 (大侠五级) | 2014-02-21 21:04
1

其实hibernate和ef本身实现了这个模式 有时再次封装uow是为了业务的可理解性 个人观点

xinyu207 | 园豆:202 (菜鸟二级) | 2014-02-21 23:43
0

UnitOfWork类似于工作单元,是对增删改查的一个封装,可以说是一个通用的代码块,不同的areas下只需要改不同的edmx就行了。const string inputFile = @"../Models/Memeber.edmx";  这句修改就行了。

祁临芯 | 园豆:251 (菜鸟二级) | 2014-02-25 17:28
0

工作单元,对于EF和linq to sql来说,实现join查询需要是同一个数据上下文才可以,有了工作单元,可以保证它们处在同一个数据上下文之中.而且它与架构无关,你的数据上下文可以是EF,也可以是LINQTOSQL,这一些很重要.

下面是通过ioc动态生产的数据上下文对象

//反射出仓储对象
 db = ServiceLocator.Instance.GetService<IUnitOfWork>();
张占岭 | 园豆:464 (菜鸟二级) | 2014-05-21 17:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册