现在的位置: 首页 > 综合 > 正文

在业务层中使用事务

2013年09月12日 ⁄ 综合 ⁄ 共 1189字 ⁄ 字号 评论关闭

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

 

   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;
                }
               
            }
               
        }

   }

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

【上篇】
【下篇】

抱歉!评论已关闭.