public class DatabaseConnectionWrapper : IDisposable
{
    // Fields
    private DbConnection Connection;
    private int refCount;    // Methods
    public DatabaseConnectionWrapper(DbConnection connection)
    {
        this.Connection = connection;
        this.refCount = 1;
    }    public DatabaseConnectionWrapper AddRef()
    {
        Interlocked.Increment(ref this.refCount);
        return this;
    }
}上面是微软企业库里一个数据库连接的帮助类,在第一次创建一个数据库连接的时候,都会实例化该类,并传入DbConnection,且计数refCount变量;同时还有一个对于进行事务时候使用的类public static class TransactionScopeConnections
{
    // Fields
    private static readonly Dictionary<Transaction, Dictionary<string, DatabaseConnectionWrapper>> transactionConnections = new Dictionary<Transaction, Dictionary<string, DatabaseConnectionWrapper>>();    // Methods
    public static DatabaseConnectionWrapper GetConnection(Database db)
    {
        Dictionary<string, DatabaseConnectionWrapper> connectionList;
        DatabaseConnectionWrapper connection;
        Transaction currentTransaction = Transaction.Current;
        if (currentTransaction == null)
        {
            return null;
        }
        lock (transactionConnections)
        {
            if (!transactionConnections.TryGetValue(currentTransaction, out connectionList))
            {
                connectionList = new Dictionary<string, DatabaseConnectionWrapper>();
                transactionConnections.Add(currentTransaction, connectionList);
                currentTransaction.TransactionCompleted += new TransactionCompletedEventHandler(TransactionScopeConnections.OnTransactionCompleted);
            }
        }
        lock (connectionList)
        {
            if (!connectionList.TryGetValue(db.ConnectionString, out connection))
            {
                connection = new DatabaseConnectionWrapper(db.GetNewOpenConnection());
                connectionList.Add(db.ConnectionString, connection);
            }
            connection.AddRef();
        }
        return connection;
    }
}事实上,在执行数据库操作的时候,在要进行数据库连接的时候,都会先使用TransactionScopeConnections类,调用GetConnection方法,判断在当前事务字典中的数据库连接字典中是否存在指定连接对象,如果存在就使用那个对象,并且计数递增,否则就直接实例化DatabaseConnectionWrapper,那么计数就从1开始我不理解的是这里对数据库连接进行计数的作用是为了做什么