Esempio n. 1
0
        /// <summary>
        /// 지정된 DB Name의 Provider에 따라, IAdoRepository 인스턴스 생성 함수를 다르게 합니다.
        /// SQL Server인 경우, 자동으로 <see cref="SqlRepositoryImpl"/>을 사용하게 하여, 확장을 보장받을 수 있게 하였습니다.
        /// </summary>
        /// <param name="dbName"></param>
        /// <returns></returns>
        internal static Func <string, IAdoRepository> GetAdoRepositoryFactoryFunction(string dbName)
        {
            if (dbName.IsNotWhiteSpace())
            {
                var settings = ConfigTool.GetConnectionSettings(dbName);

                var isSqlClient = settings != null && settings.ProviderName.Contains("SqlClient");

                if (isSqlClient)
                {
                    if (IsDebugEnabled)
                    {
                        log.Debug("Database가 SQL Server이므로, SqlRepositoryImpl을 생성하는 Factory 함수를 반환합니다. dbName=[{0}]", dbName);
                    }

                    return(name => new SqlRepositoryImpl(name));
                }
            }

            if (IsDebugEnabled)
            {
                log.Debug("Database가 SQL Server가 아니므로, 기본 Repository인 AdoRepositoryImpl를 생성하는 Factory 함수를 반환합니다. dbName=[{0}]", dbName);
            }

            return(name => new AdoRepositoryImpl(name));
        }
Esempio n. 2
0
        /// <summary>
        /// 지정된 Database의 Connection Pool을 모두 제거합니다.
        /// </summary>
        /// <param name="databaseName"></param>
        public static void ClearAllConnectionPools(string databaseName)
        {
            var connSettings = ConfigTool.GetConnectionSettings(databaseName ?? DefaultDatabaseName);

            connSettings.ShouldNotBeNull("connSettings");

            ClearConnectionPoolInternal(connSettings.ProviderName);
        }
Esempio n. 3
0
        public static IAdoProvider CreateByName(string dbName)
        {
            if (IsDebugEnabled)
            {
                log.Debug("IAdoProvider 구현 인스턴스를 생성합니다. dbName=[{0}]", dbName);
            }

            var connSettings = ConfigTool.GetConnectionSettings(dbName);

            return(Create(connSettings.ConnectionString, connSettings.ProviderName));
        }
        /// <summary>
        /// 테스트할 DB 이름입니다.
        /// </summary>
        /// <returns></returns>
        protected virtual string GetDatabaseName()
        {
            var databaseEngineKind = GetDatabaseEngine();

            if (databaseEngineKind == DatabaseEngine.DevartOracle)
            {
                return(ConfigTool.GetConnectionSettings("LOCAL_XE").ConnectionString);
            }

            if (databaseEngineKind == DatabaseEngine.MySql)
            {
                return(ConfigTool.GetConnectionString("World"));
            }

            return(@"NSoft_NFramework_DATA");
        }
Esempio n. 5
0
        protected AdoProviderBase(string connectionStringName)
        {
            if (connectionStringName.IsWhiteSpace())
            {
                connectionStringName = ConfigTool.GetConnectionStringSettings()[0].Name;
            }

            var connSettings = ConfigTool.GetConnectionSettings(connectionStringName);

            Guard.Assert(connSettings != null, "해당 ConnectionString 정보를 찾지 못했습니다. connectionStringName=[{0}]", connectionStringName);

            ConnectionString = connSettings.ConnectionString;
            ProviderName     = connSettings.ProviderName;

            InitializeDatabase();
        }
Esempio n. 6
0
 /// <summary>
 /// 환경설정에서 지정된 이름의 <see cref="ConnectionStringSettings"/> 인스턴스를 가져온다.
 /// </summary>
 /// <param name="name"></param>
 /// <returns></returns>
 public static ConnectionStringSettings GetConnectionStringSettings(string name)
 {
     return(ConfigTool.GetConnectionSettings(name));
 }