NHibernate实践之----事务

最近在做一个电商项目,其中有个场景相信大家都会遇到,就是在新增订单的时候,同时需要新增相应的订单商品。这种场景很常见,新增订单是其中的一个实例,总结起来就是,当需要对某条记录的进行做出变化时候,相关联的数据需要作出相应的变动,这时候就需要用到事务进行控制数据的准确性、一致性。

这里使用Transactions类来实现的,以下是具体代码:

TB_Order_OrderProduct_BLL ProBll = new TB_Order_OrderProduct_BLL();

        public bool Add(TB_Order_Order entity, List<TB_Order_OrderProduct> Prolist)
        {
            TransactionOptions transactionOption = new TransactionOptions();
            //设置事务隔离级别
            transactionOption.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            // 设置事务超时时间为60秒
            transactionOption.Timeout = new TimeSpan(0, 0, 60);
            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, transactionOption))
            {
                try
                {
                    if (Add(entity))
                    {
                        Prolist.ForEach(a => { a.OrderID = entity.Id; });
                        foreach (TB_Order_OrderProduct item in Prolist)
                        {
                            ProBll.Add(item);
                        }
                        scope.Complete();
                        return true;
                    }
                    return false;
                }
                catch (Exception ex)
                {
                    throw new Exception("发送信息异常,原因:" + ex.Message);
                }
                finally
                {
                    //释放资源
                    scope.Dispose();
                }
            }
        }

文笔不好,详细就看代码吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值