private static ConnectionStringElement GetConfiguration(string name)
        {
            ConnectionManagerConfigurationSection section =
                ConnectionManagerConfigurationSection.GetConfig();

            ConnectionStringConfigurationElement configElement = section.ConnectionStrings[name];
            ConnectionStringElement element = null;

            // 本地配置文件的连接串采用优先级高于Meta库中的
            if (configElement != null)
            {
                element = new ConnectionStringElement();
                element.ConnectionString = configElement.ConnectionString;
                element.ProviderName     = configElement.ProviderName;
                element.EventArgsType    = configElement.EventArgs.Type;
                element.Name             = configElement.Name;
                element.CommandTimeout   = configElement.CommandTimeout;
            }
            //else
            //{
            //    // 备选通道是从Meta库获取
            //    MetaConnectionStringConfigurationElement metaElement = section.MetaConnectionString;
            //    if (metaElement != null)
            //        element = metaElement.GetConnectionStringElement(name);
            //}

            return(element);
        }
        /// <summary>
        /// 数据库联接是否定义
        /// </summary>
        /// <param name="name"></param>
        public static bool ConnectionNameIsConfiged(string name)
        {
            ExceptionHelper.CheckStringIsNullOrEmpty(name, "name");

            ConnectionStringElement settings = GetConfiguration(name);

            return(settings != null);
        }
        /// <summary>
        /// 获取指定连接的DbProviderFactory对象(Added by Shen Zheng)
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        internal static DbProviderFactory GetDbProviderFactory(string name)
        {
            ExceptionHelper.CheckStringIsNullOrEmpty(name, "name");

            ConnectionStringElement elem = GetConfiguration(name);

            if (elem == null)
            {
                throw new ConfigurationErrorsException(string.Format(Resource.CanNotFindConnectionName, name));
            }

            return(DbProviderFactories.GetFactory(elem.ProviderName));
        }
        /// <summary>
        /// 根据数据库逻辑名称获得连接实例
        /// </summary>
        /// <param name="name">数据库逻辑名称</param>
        /// <returns>数据库连接实例</returns>
        internal static DbConnection GetConnection(string name)
        {
            ExceptionHelper.CheckStringIsNullOrEmpty(name, "name");

            ConnectionStringElement settings = GetConfiguration(name);

            if (settings == null)
            {
                throw new ConfigurationErrorsException(string.Format(Resource.CanNotFindConnectionName, name));
            }

            DbConnection dbConnection = DbProviderFactories.GetFactory(settings.ProviderName).CreateConnection();

            dbConnection.ConnectionString = settings.ConnectionString;

            return(dbConnection);
        }