.net中的事务处理到底应该放在BLL还是DAL里面啊?

RT```.net里的事务处理应该放在BLL还是DAL里面呢?我在网上看架构的时候看到这样一种提法:除非事务放在存储过程中定义(纯数据库事务),否则(即使都是访问DAL)... RT```
.net里的事务处理应该放在BLL还是DAL里面呢?
我在网上看架构的时候看到这样一种提法:
除非事务放在存储过程中定义(纯数据库事务),否则(即使都是访问 DAL)都应放在 BLL 或 Domain 中实现
是正确的吗?
不理解,事务不就是操作数据库的吗?为什么要放在逻辑层里呢?
展开
 我来答
平梦醉神风1I
2011-07-26 · TA获得超过1510个赞
知道小有建树答主
回答量:691
采纳率:0%
帮助的人:1038万
展开全部
因为事务经常是由业务驱动的。

打个比方,现在有个OA系统,当新增用户时,业务方希望这个用户就进入了一个分组,并且属于某个指定的角色,换而言之,进User表、UserGroup表、UserRole表同时会进一条记录,这个业务必须是一个事务。

而对于写DAL层的人来说,他并不关心这个,他应该保证的是任何两个数据访问层的方法都能是一个事务。也许进User表是个独立的操作,也许进User和UserGroup表这两个操作是一个事务,写DAL层的开发人员应该保证任何两个方法的组合都能是一个事务(跨数据库的事务暂不在考虑之内)

甚至有些事务,未必全部都是数据访问操作,比如用户上传了一个文件到web服务器。
数据库新增了一条记录,记录用户aa上传了文件,并记录了上传文件的路径。
那么当删除这条记录的时候,同时还应该删除上传的这个文件,这两个操作,逻辑上是一个事务。

对于非数据库事务,相当于设计模式中的备忘录模式,需要自己完成类似于commit和rollback的操作。

至于我刚才所说的业务逻辑层实现事务,如果不用System.Transactions.Transaction类
,楼主可以考虑下如何实现
匿名用户
2011-07-27
展开全部
业务逻辑层(BLL):主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理。如果说数据层是积木,那逻辑层就是对这些积木的搭建。
数据访问层(DAL):主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。
(IDAL)它体现了“抽象”的精神,或者说是“面向接口编程”的最佳体现。抽象的接口模块IDAL
(Model)实体和数据库表映射类
(Web)web网站项目
另外,站长团上有产品团购,便宜有保证
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大鹏24013
2011-07-26
知道答主
回答量:33
采纳率:0%
帮助的人:15.5万
展开全部
只要是访问数据,不管是访问数据库还是访问文件都应该放在DAL(数据访问层),只有作逻辑判断时才放在BLL(逻辑判断层)!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
printlnstatic
2011-07-28 · 超过11用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:24.6万
展开全部
做判断的就是放在BLL。 做数据访问的不管是什么就放在DAL
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小泽99
2011-07-26 · TA获得超过1127个赞
知道小有建树答主
回答量:272
采纳率:0%
帮助的人:333万
展开全部
一般标准的DAL层是没有任何逻辑的!而事务是处理逻辑,因此应该放在BLL层。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式