你的位置:首页 > 软件开发 > ASP.net > 在开发框架中使用事务进行数据的统一处理

在开发框架中使用事务进行数据的统一处理

发布时间:2015-11-20 11:01:09
在很多业务数据处理的场合,整条数据链的数据完整性是非常重要的,因为我们在系统里面,往往需要同时更新或者写入一些数据,如果其中任何一环处理错误,都应该逐条滚回,这种原子性的确保就是通过事务来进行的,本文介绍的这个事务处理,适用于我的所有开发框架,如Winform开发框架、混合式开发 ...

在很多业务数据处理的场合,整条数据链的数据完整性是非常重要的,因为我们在系统里面,往往需要同时更新或者写入一些数据,如果其中任何一环处理错误,都应该逐条滚回,这种原子性的确保就是通过事务来进行的,本文介绍的这个事务处理,适用于我的所有开发框架,如Winform开发框架、混合式开发框架、Web框架等,本文主要介绍基于我的会员系统的一些事务处理案例,对事务的使用进行介绍和代码讲解。

由于上面介绍的这些框架都是基于业务逻辑层BLL层之上的,如复杂一点的混合式框架,在BLL层之上还有一个WCF服务层、或者Web API的数据提供层,因此为了适应多种框架的适用性,我们建议把业务规则封装在BLL层,这样各种应用框架使用的时候,代码就不用修改很多,而且业务逻辑统一,也很方便理解。

1、框架的事务支持

上面我提到的几个框架,在底层我们主要是采用了微软的Enterprise Library的数据库访问模块,因此它能够很好抽象各种数据库的事务,以适应各种不同数据库的事务处理。使用微软的Enterprise Library模块,可以很好支持SQLSever、Oracle、Mysql、Access、SQLite等数据库。

开发框架,常见的分层模式,可以分为UI层、BLL层、DAL层、IDAL层、Entity层、公用类库层等等

在开发框架中使用事务进行数据的统一处理

框架的基类我们封装了大量的通用性处理函数,包括数据访问层、业务逻辑层的基类,所有的基类函数基本上都带有一个DbTransaction trans = null 的定义,就是我们可以采用事务,也可以默认不采用事务,是一个可选性的事务参数。

如数据访问类的部分接口定义如下所示。

  /// <summary>  /// 数据访问层的接口  /// </summary>  public interface IBaseDAL<T> where T : BaseEntity  {    /// <summary>    /// 插入指定对象到数据库中    /// </summary>    /// <param name="obj">指定的对象</param>    /// <param name="trans">事务对象</param>    /// <returns>执行成功返回True</returns>    bool Insert(T obj, DbTransaction trans = null);        /// <summary>    /// 根据指定对象的ID,从数据库中删除指定对象    /// </summary>    /// <param name="key">指定对象的ID</param>    /// <param name="trans">事务对象</param>    /// <returns>执行成功返回<c>true</c>,否则为<c>false</c>。</returns>    bool Delete(object key, DbTransaction trans = null);        /// <summary>    /// 更新对象属性到数据库中    /// </summary>    /// <param name="obj">指定的对象</param>    /// <param name="primaryKeyValue">主键的值</param>    /// <param name="trans">事务对象</param>    /// <returns>执行成功返回<c>true</c>,否则为<c>false</c>。</returns>    bool Update(T obj, object primaryKeyValue, DbTransaction trans = null);        /// <summary>    /// 查询数据库,检查是否存在指定ID的对象    /// </summary>    /// <param name="key">对象的ID值</param>    /// <param name="trans">事务对象</param>    /// <returns>存在则返回指定的对象,否则返回Null</returns>    T FindByID(object key, DbTransaction trans = null);            .....................//其他操作      }

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:在开发框架中使用事务进行数据的统一处理

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录