首页  ·  知识 ·  
Label
      编辑:  图片来源:网络

在业务层中使用事务,很多专家称之为轻量级事务,代码如下,很简单

   public class CompanyBusiness
    {
        private readonly CompanyDao dao = new CompanyDao();
       
        public bool Add(Company company,Rating rating,ref int companyId)
        {
            TransactionOptions options = new TransactionOptions();
            //可以在事务期间读取可变数据,但是不可以修改。可以在事务期间添加新数据
            options.IsolationLevel = IsolationLevel.RepeatableRead;
            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required,options))
            {
                try
                {
                    dao.Add(company, rating,ref companyId);
                    if (company.CategoryId != 0)
                    {
                        new ServiceCategoryBusiness().UpdateServiceCompanyNumber(company.CategoryId);
                    }
                    if (company.AddressId != 0)
                    {
                        new AreaBusiness().UpdateServiceCompanyNumber(company.AddressId);
                    }

                    //提交事务
                    scope.Complete();
                    return true;
                }
                catch(Exception ex)
                {
                    throw ex;
                }
               
            }
               
        }

   }

经测试,在失败后会自动回滚.

本文作者:网友 来源: http://blog.csdn.net/huangbomeizi/archive/2010/02/23/5318368.aspx
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的
收藏至微信