抛砖引玉,在逻辑层实现事务,请大家指教。

问题描述

为什么以前在逻辑层做不了事务,因为我们在使用SqlConnection的时候,都是连接完后,马上就把SqlConnection对象关闭。而事务要求对同一个SqlConnection对象上实施,所以就做不了事务了。解决办法就是想办法告诉数据库操作类,我用了事务,不要闭连接,并把当前连接保存下来,下一次继续使用。

解决方案

解决方案二:
我写了一个事务容器类/**////<summary>///TransactionScope包装类///</summary>publicsealedclassTransactionScopeA:IDisposable{privateTransactionScopem_TransactionScope=null;privateSqlConnection_connection=null;publicSqlConnectionGetConnection{set{_connection=value;}get{return_connection;}}/**////<summary>///实例化一个新的TransactionScope///</summary>///<paramname="dac"></param>publicTransactionScopeA(){this.m_TransactionScope=newTransactionScope();}///<summary>///关闭连接///</summary>publicvoidClose(){_connection.Close();_connection.Dispose();_connection=null;}publicvoidComplete(){this.m_TransactionScope.Complete();this.Close();this.GetConnection=null;}#regionIDisposable成员/**////<summary>///当执行该方法的时候完成两件任务///1关闭数据库连接///2调用TransactionScope的Dispose()方法///</summary>voidIDisposable.Dispose(){try{Close();}finally{m_TransactionScope.Dispose();}}#endregion}

时间: 2024-09-20 15:17:22

抛砖引玉,在逻辑层实现事务,请大家指教。的相关文章

架构设计-业务逻辑层简述

    业务逻辑层是专门处理软件业务需求的一层,处于数据库之上,服务层之下,完成一些列对Domain Object的CRUD,作为一组微服务提供给服务层来组织在暴露给表现层,如库存检查,用法合法性检查,订单创建.    业务逻辑层包含领域对象模型,领域实体,业务规则,验证规则,业务流程.1:领域对象模型为系统结构描述,包含实体功能描述,实体之间的关系.领域模型处于天生的复杂性:2:领域实体:业务层是一些操作业务对象(BO)的处理.业务对象包含数据和行为,是一个完整的业务对象.其不同于上节架构设计

从零开始编写自己的C#框架(13)——T4模板在逻辑层中的应用(二)

原文:从零开始编写自己的C#框架(13)--T4模板在逻辑层中的应用(二) 最近这段时间特忙,公事私事,忙得有时都没时间打开电脑了,这两周只能尽量更新,以后再将章节补回来.   直接进入主题,通过上一章节,大家明白了怎么使用模板类编写T4模板,本章进的是一些简单技巧的应用 1.首先创建一个Test2.tt模板 2.然后修改模板内容为下面代码 这些代码与上一章最后面的那个差不多,只是修改了输出文件名.命名空间.类名.类属性(partial)和一个单例获取函数 1 <#@ template debu

从零开始编写自己的C#框架(14)——T4模板在逻辑层中的应用(三)

原文:从零开始编写自己的C#框架(14)--T4模板在逻辑层中的应用(三) 原本关于T4模板原想分5个章节详细解说的,不过因为最近比较忙,也不想将整个系列时间拉得太长,所以就将它们整合在一块了,可能会有很多细节没有讲到,希望大家自己对着代码与模板去研究. 本章代码量会比较大,基本将Web层要使用到的大部分函数都用模板生成了出来,而模板中的函数,很多也是互相关联调用的.另外在DotNet.Utilities(公共函数项目)中也添加与修改了一些类和函数. 需要特别说明的是,在逻辑层添加了July大神

Linux中断(interrupt)子系统之四:驱动程序接口层 &amp; 中断通用逻辑层【转】

转自:http://blog.csdn.net/droidphone/article/details/7497787 在本系列文章的第一篇:Linux中断(interrupt)子系统之一:中断系统基本原理,我把通用中断子系统分为了4个层次,其中的驱动程序接口层和中断通用逻辑层的界限实际上不是很明确,因为中断通用逻辑层的很多接口,既可以被驱动程序使用,也可以被硬件封装层使用,所以我把这两部分的内容放在一起进行讨论. 本章我将会讨论这两层对外提供的标准接口和内部实现机制,几乎所有的接口都是围绕着ir

ASP.NET2.0数据操作之创建业务逻辑层

asp.net|创建|数据 导言 本教程的第一节所描述的数据访问层(Data Access Layer,以下简称为DAL)已经清晰地将表示逻辑与数据访问逻辑区分开了.不过,即使DAL将数据访问的细节从表示层中分离出来了,可它却不能处理任何的业务规则.比如说,我们可能不希望产品表中那些被标记为"停用"的产品的"分类编号"或"供应商编号"被更新:我们还可能需要应用一些资历规则,比如说我们都不希望被比自己的资历还要浅的人管理.另外一个比较常见的情况就是

《解剖PetShop》系列之五:PetShop之业务逻辑层设计

业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分.它的关注点主要集中在业务规则的制定.业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,我们也将业务逻辑层称为领域层.例如Martin Fowler在<Patterns of Enterprise Application Architecture>一书中,将整个架构分为三个主要的层:表示层.领域层和数据源层.作为领域驱动设计的先驱Eric Evans

ASP.NET 2.0数据操作之创建业务逻辑层

导言 本教程的第一节所描述的数据访问层(Data Access Layer,以下简称为DAL)已经清晰地将表示逻辑与数据访问逻辑区分开了.不过,即使DAL将数据访问的细节从表示层中分离出来了,可它却不能处理任何的业务规则.比如说,我们可能不希望产品表中那些被标记为"停用"的产品的"分类编号"或"供应商编号"被更新:我们还可能需要应用一些资历规则,比如说我们都不希望被比自己的资历还要浅的人管理.另外一个比较常见的情况就是授权,比如说只有那些具有特殊

基于WF与WCF构建数据逻辑层

WF是什么,许多对NET技术有了解的人能说出一点,但又说不清楚 不论你认为WF是什么,但不要与Jbpm ,Shark ,Biztalk,SharePoint 这些产品做比效,这些产品有共同的特点就是面向企业业务流程应用的产品,WF不是,WF面向的开发人员 WF是一个使用XML描述,具有IOC.AOP功能的面向流程控制的开发平台. 我从事工作流开发有8年了,学习WF已经有5年了,在博客园写关于WF的主题博客也快4年了,自从接触WF后我一直在解释WF与传统工作流之间的区别 可能是我即从事工作流开发,

基于.NET平台的分层架构实战(十)—业务逻辑层的实现

在这一篇文章中,将实现一个NGuestBook的业务逻辑层. 在实际应用 中,业务逻辑层是至关重要的,他承载着整个系统最核心的部分,也是客户最关 注的部分.这一部分的实现,通常需要技术专家和领域专家通力合作.当然,在 本文章系列的Demo中,由于业务逻辑的简单性,这里看的可能还不是很明显. 在本篇文章的业务逻辑层实现中,业务逻辑层主要承担了以下职责: 1.对不同数据访问层的封装.使得表示层可以不关心具体的数据访问层. 2.业务逻辑数据的填充与转换.如管理员口令的加密. 3.核心业 务的实现.这里