示例#1
0
        public DataConnection(string connectionStringName, bool keepOpen)
        {
            this._connectionStringName = connectionStringName;
            this._keepOpen             = keepOpen;
            var contextItems = HttpContext.Current.Items;

            this._connection = ((DbConnection)(contextItems[ToContextKey("connection")]));
            if (this._connection == null)
            {
                this._connection = SqlStatement.CreateConnection(connectionStringName, true, out _parameterMarker, out _leftQuote, out _rightQuote);
                this._canClose   = true;
                if (keepOpen)
                {
                    var transactionsEnabled = ApplicationServices.Settings("odp.transactions.enabled");
                    this._transactionsEnabled = ((transactionsEnabled == null) || ((bool)(transactionsEnabled)));
                    BeginTransaction();
                    contextItems[ToContextKey("connection")]      = _connection;
                    contextItems[ToContextKey("parameterMarker")] = _parameterMarker;
                    contextItems[ToContextKey("leftQuote")]       = _leftQuote;
                    contextItems[ToContextKey("rightQuote")]      = _rightQuote;
                }
            }
            else
            {
                _transaction     = ((DbTransaction)(contextItems[ToContextKey("transaction")]));
                _parameterMarker = ((string)(contextItems[ToContextKey("parameterMarker")]));
                _leftQuote       = ((string)(contextItems[ToContextKey("leftQuote")]));
                _rightQuote      = ((string)(contextItems[ToContextKey("rightQuote")]));
            }
        }