Ejemplo n.º 1
0
        /// <summary>
        /// Construct a new <see cref="AdoPersistenceResourceAccessor" /> with the
        /// specified <see cref="IAdoResourceProvider" />,
        /// <see cref="IPersistenceNameResolver" /> and <see cref="IAdoValueReader" />
        /// All work should be performed in the specified <see cref="Transaction" />.
        /// </summary>
        /// <param name="resourceProvider">
        /// An <see cref="IAdoResourceProvider" /> used to provide resources for
        /// accessing the tracking store.
        /// </param>
        /// <param name="nameResolver">
        /// An <see cref="IPersistenceNameResolver" /> that resolves names
        /// of commands and parameters for the relevant tracking store.
        /// </param>
        /// <param name="valueReader">
        /// An <see cref="IAdoValueReader" /> that reads values from
        /// <see cref="IDbCommand" /> and <see cref="IDataReader" /> implementations.
        /// </param>
        /// <param name="transaction">
        /// An <see cref="Transaction" /> in which to perform the work.
        /// </param>
        public AdoPersistenceResourceAccessor(IAdoResourceProvider resourceProvider,
                                              IPersistenceNameResolver nameResolver, IAdoValueReader valueReader,
                                              Transaction transaction)
        {
            if (resourceProvider == null)
            {
                throw new ArgumentNullException("resourceProvider");
            }

            if (nameResolver == null)
            {
                throw new ArgumentNullException("nameResolver");
            }

            if (valueReader == null)
            {
                throw new ArgumentNullException("valueReader");
            }

            _resourceProvider = resourceProvider;
            _nameResolver     = nameResolver;
            _valueReader      = valueReader;

            if (transaction == null)
            {
                _isConnectionOwner = true;
                _dbConnection      = resourceProvider.CreateConnection();
                _dbConnection.Open();
            }
            else
            {
                _dbConnection = resourceProvider.CreateEnlistedConnection(transaction, out _isConnectionOwner);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Construct a new <see cref="AdoPersistenceResourceAccessor" /> with the
        /// specified <see cref="IAdoResourceProvider" />, 
        /// <see cref="IPersistenceNameResolver" /> and <see cref="IAdoValueReader" /> 
        /// All work should be performed in the specified <see cref="Transaction" />.
        /// </summary>
        /// <param name="resourceProvider">
        /// An <see cref="IAdoResourceProvider" /> used to provide resources for
        /// accessing the tracking store.
        /// </param>
        /// <param name="nameResolver">
        /// An <see cref="IPersistenceNameResolver" /> that resolves names
        /// of commands and parameters for the relevant tracking store.
        /// </param>
        /// <param name="valueReader">
        /// An <see cref="IAdoValueReader" /> that reads values from
        /// <see cref="IDbCommand" /> and <see cref="IDataReader" /> implementations.
        /// </param>
        /// <param name="transaction">
        /// An <see cref="Transaction" /> in which to perform the work.
        /// </param>
        public AdoPersistenceResourceAccessor(IAdoResourceProvider resourceProvider,
            IPersistenceNameResolver nameResolver, IAdoValueReader valueReader,
            Transaction transaction)
        {
            if (resourceProvider == null)
                throw new ArgumentNullException("resourceProvider");

            if (nameResolver == null)
                throw new ArgumentNullException("nameResolver");

            if (valueReader == null)
                throw new ArgumentNullException("valueReader");

            this.resourceProvider = resourceProvider;
            this.nameResolver = nameResolver;
            this.valueReader = valueReader;

            if (transaction == null)
            {
                this.isConnectionOwner = true;
                this.dbConnection = resourceProvider.CreateConnection();
                this.dbConnection.Open();
            }
            else
                this.dbConnection = resourceProvider.CreateEnlistedConnection(transaction, out this.isConnectionOwner);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Given a provider name locate the necessary <see cref="IPersistenceNameResolver" />
        /// in the configuration file.
        /// </summary>
        /// <param name="providerName">
        /// The name that uniquely identifies an ADO.NET provider.
        /// </param>
        /// <returns>
        /// An <see cref="IPersistenceNameResolver" />.
        /// </returns>
        public static IPersistenceNameResolver Create(string providerName)
        {
            // locate any mappings for the specified provider
            ProviderNameTypeMapping mapping = PersistenceAdoProviderSettings.Get()
                                              .NameResolvers.FindByProviderName(providerName);

            IPersistenceNameResolver nameResolver = null;

            if (mapping != null)
            {
                nameResolver = TypeUtilities.CreateInstance <IPersistenceNameResolver>(mapping.Type);
            }

            return(nameResolver);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Construct a new <see cref="AdoPersistenceResourceAccessor" /> with the
 /// specified <see cref="IAdoResourceProvider" />,
 /// <see cref="IPersistenceNameResolver" /> and <see cref="IAdoValueReader" />
 /// </summary>
 /// <param name="resourceProvider">
 /// An <see cref="IAdoResourceProvider" /> used to provide resources for
 /// accessing the tracking store.
 /// </param>
 /// <param name="nameResolver">
 /// An <see cref="IPersistenceNameResolver" /> that resolves names
 /// of commands and parameters for the relevant tracking store.
 /// </param>
 /// <param name="valueReader">
 /// An <see cref="IAdoValueReader" /> that reads values from
 /// <see cref="IDbCommand" /> and <see cref="IDataReader" /> implementations.
 /// </param>
 public AdoPersistenceResourceAccessor(IAdoResourceProvider resourceProvider,
                                       IPersistenceNameResolver nameResolver, IAdoValueReader valueReader)
     : this(resourceProvider, nameResolver, valueReader, null)
 {
 }
 /// <summary>
 /// Construct a new <see cref="AdoPersistenceResourceAccessor" /> with the
 /// specified <see cref="IAdoResourceProvider" />, 
 /// <see cref="IPersistenceNameResolver" /> and <see cref="IAdoValueReader" /> 
 /// </summary>
 /// <param name="resourceProvider">
 /// An <see cref="IAdoResourceProvider" /> used to provide resources for
 /// accessing the tracking store.
 /// </param>
 /// <param name="nameResolver">
 /// An <see cref="IPersistenceNameResolver" /> that resolves names
 /// of commands and parameters for the relevant tracking store.
 /// </param>
 /// <param name="valueReader">
 /// An <see cref="IAdoValueReader" /> that reads values from
 /// <see cref="IDbCommand" /> and <see cref="IDataReader" /> implementations.
 /// </param>
 public AdoPersistenceResourceAccessor(IAdoResourceProvider resourceProvider,
     IPersistenceNameResolver nameResolver, IAdoValueReader valueReader)
     : this(resourceProvider, nameResolver, valueReader, null)
 {
 }