关于数据库操作及事务的处理
2014-08-27 20:18
253 查看
DAL基于ADO.NET的话,那么可以为你的DAL增加一个返回 DbTransaction 对象的方法,然后使用类似这样的工厂方法
C# code
?
总之你的所谓DAL方法要作出修改,它如果需要访问数据库,那么从传入的tran中去取得 Connection 属性,并调用 Connection 的 CreateCommand 方法来创建 Command,来操作数据库。
事务只在同一线程的同一数据库连接下有效,
而另一方面,每一个具体的业务,会包括大量的实体类的增删改查处理,
如果由DAL控制事务,每一次都要频繁的开关数据库,有可能会很浪费资源。
事务的目的是回滚,采用DAL控制的方式无法进行回滚。
因此,事务的发起与结束只能有业务层控制,而不能由DAL控制,这就决定了数据库的开关也只能由BLL说了算。
C# code
?
事务只在同一线程的同一数据库连接下有效,
而另一方面,每一个具体的业务,会包括大量的实体类的增删改查处理,
如果由DAL控制事务,每一次都要频繁的开关数据库,有可能会很浪费资源。
事务的目的是回滚,采用DAL控制的方式无法进行回滚。
因此,事务的发起与结束只能有业务层控制,而不能由DAL控制,这就决定了数据库的开关也只能由BLL说了算。
相关文章推荐
- 利用C#事务处理对数据库进行多重操作
- 利用C#事务处理对数据库进行多重操作
- avaweb对数据库进行事务处理(批量删除操作)
- ios数据库sqlite-第三方框架FMDB,关于线程安全的事务处理
- C# 操作数据库分布式事务处理
- 关于“ORA-02041: 客户数据库未开始一个事务处理”
- 关于使用Transaction对于非数据库事务的操作
- 2.关于QT中数据库操作,简单数据库连接操作,数据库的增删改查,QSqlTableModel和QTableView,事务操作,关于QItemDelegate 代理
- Java中怎样实现批量删除操作(Java对数据库进行事务处理)?
- 关于事务处理机制和原理、分布数据库设计架构与原理
- Java对数据库进行事务处理(批量删除操作)
- C# 使用DataSet+dataAdapter操作后台数据库之事务处理方法1,欢迎拍砖
- c#使用Transactions类完成多个数据库的事务操作(分布式事务处理)
- 07_NoSQL数据库之Redis数据库:Redis的高级应用之事务处理、持久化操作、pub_sub、虚拟内存
- 关于c#.Net操作Access数据库的类,支持事务处理
- .NET数据库操作的事务处理
- NoSQL数据库之Redis数据库管理六(Redis的高级应用之事务处理、持久化操作、pub_sub、虚拟内存)
- ios数据库sqlite-第三方框架FMDB,关于线程安全的事务处理
- 07_NoSQL数据库之Redis数据库:Redis的高级应用之事务处理、持久化操作、pub_sub、虚拟内存
- 在ASP中使用事务处理数据库增/删/改操作