Transaction/TransactionScope.cs

(开头部分) 1KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using PWMIS.DataProvider.Adapter;
using PWMIS.DataProvider.Data;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Text;

namespace OrmTransaction
{
    public class TransactionScope:IDisposable
    {
        private static AdoHelper  db = MyDB.GetDBHelper();

        private Transaction transaction = Transaction.Current;


        public bool Completed { get; private set; }


        public TransactionScope(IsolationLevel isolationLevel = IsolationLevel.ReadCommitted)
        {
            if (null == transaction)
            {
                IDbConnection connection = db.GetDbConnection();
                connection.Open();
                IDbTransaction dbTransaction = connection.BeginTransaction(isolationLevel);
                Transaction.Current = new CommittableTransaction(dbTransaction);
            }
            else
            {
                Transaction.Current = transaction.DependentClone();
            }           
        }

        public void Complete()
        {
            this.Completed = true;
        }

        public void Dispose()
        {
            try
            {
                Transaction current = Transaction.Current;

                if (!this.Completed)
                {
                    current.Rollback();
                }
                CommittableTransaction committableTransaction = current as CommittableTransaction;
                if (null != committableTransaction)
                {
                    if (this.Completed)
                    {
                        committableTransaction.Commit();
                    }
                    committableTransaction.Dispose();

                }
后面还有 9 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。