コード例 #1
0
        /// <summary>
        /// 请在UseConnectionString配置后调用此方法
        /// </summary>
        /// <param name="this"></param>
        /// <returns></returns>
        public static FreeSqlBuilder CreateDatabaseIfNotExists(this FreeSqlBuilder builder)
        {
            FieldInfo dataTypeFieldInfo = builder.GetType().GetField("_dataType", BindingFlags.NonPublic | BindingFlags.Instance);

            if (dataTypeFieldInfo is null)
            {
                throw new ArgumentException("_dataType is null");
            }

            string   connectionString = GetConnectionString(builder);
            DataType dbType           = (DataType)dataTypeFieldInfo.GetValue(builder);

            switch (dbType)
            {
            case DataType.MySql:
                return(builder.CreateDatabaseIfNotExistsMySql(connectionString));

            case DataType.SqlServer:
                return(builder.CreateDatabaseIfNotExistsSqlServer(connectionString));

            case DataType.PostgreSQL:
                break;

            case DataType.Oracle:
                break;

            case DataType.Sqlite:
                return(builder);

            case DataType.OdbcOracle:
                break;

            case DataType.OdbcSqlServer:
                break;

            case DataType.OdbcMySql:
                break;

            case DataType.OdbcPostgreSQL:
                break;

            case DataType.Odbc:
                break;

            case DataType.OdbcDameng:
                break;

            case DataType.MsAccess:
                break;

            case DataType.Dameng:
                break;

            case DataType.OdbcKingbaseES:
                break;

            case DataType.ShenTong:
                break;

            case DataType.KingbaseES:
                break;

            case DataType.Firebird:
                break;

            default:
                break;
            }

            Log.Error($"不支持创建数据库");
            return(builder);
        }