首页 > 数据库 > mysql教程 > 关于数据库操作及事务的处理

关于数据库操作及事务的处理

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-07 15:41:47
原创
1196 人浏览过

DAL基于ADO.NET的话,那么可以为你的DAL增加一个返回DbTransaction对象的方法,然后使用类这样的工厂方法 C# code ? 1 2 3 4 5 6 7 using (DbTransactiontran=CreateMyTransaction()) { method_a(tran); method_b(tran); method_c(tran); tran.Commit(); }

DAL基于ADO.NET的话,那么可以为你的DAL增加一个返回  DbTransaction 对象的方法,然后使用类似这样的工厂方法

C# code ?

1

2

3

4

5

6

7

using(DbTransaction tran=CreateMyTransaction())

{

    method_a(tran);

    method_b(tran);

    method_c(tran);

    tran.Commit();

}



总之你的所谓DAL方法要作出修改,它如果需要访问数据库,那么从传入的tran中去取得 Connection 属性,并调用 Connection 的 CreateCommand 方法来创建 Command,来操作数据库。



事务只在同一线程的同一数据库连接下有效,
而另一方面,每一个具体的业务,会包括大量的实体类的增删改查处理,

如果由DAL控制事务,每一次都要频繁的开关数据库,有可能会很浪费资源。

事务的目的是回滚,采用DAL控制的方式无法进行回滚。
因此,事务的发起与结束只能有业务层控制,而不能由DAL控制,这就决定了数据库的开关也只能由BLL说了算。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于定义变量的问题
来自于 1970-01-01 08:00:00
0
0
0
关于数据库查询
来自于 1970-01-01 08:00:00
0
0
0
关于这个问题
来自于 1970-01-01 08:00:00
0
0
0
关于H-UI多标签
来自于 1970-01-01 08:00:00
0
0
0
mongodb - 关于mongoose关联表统计查询的需求
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板