Ejemplo n.º 1
0
        public static DbContextOptionsBuilder <T> CreateDbContextOptionsBuilder <T>(SharedEnum.TypeDB tdb, string connnectionString, DbContextOptionsBuilder builder = null) where T : DbContext
        {
            if (builder == null)
            {
                builder = new DbContextOptionsBuilder <T>();
            }

            if (!builder.IsConfigured)
            {
                switch (tdb)
                {
                case SharedEnum.TypeDB.InMemory:
#if DbContextInMemory
                    builder.UseInMemoryDatabase(connnectionString);
#endif
                    break;

                case SharedEnum.TypeDB.SQLite:
#if DbContextSQLite
                    builder.UseSqlite(connnectionString);
#endif
                    break;

                case SharedEnum.TypeDB.MySQL:
                case SharedEnum.TypeDB.MariaDB:
#if DbContextMySQL
                    builder.UseMySql(connnectionString, ServerVersion.AutoDetect(connnectionString));
#endif
                    break;

                case SharedEnum.TypeDB.Oracle:
#if DbContextOracle
                    builder.UseOracle(connnectionString);
#endif
                    break;

                case SharedEnum.TypeDB.SQLServer:
#if DbContextSQLServer
                    builder.UseSqlServer(connnectionString);
#endif
                    break;

                case SharedEnum.TypeDB.PostgreSQL:
#if DbContextPostgreSQL
                    builder.UseNpgsql(connnectionString);
#endif
                    break;
                }
            }
            builder.UseLoggerFactory(LogFactory).EnableSensitiveDataLogging().EnableDetailedErrors();

            return(builder as DbContextOptionsBuilder <T>);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="tdb"></param>
        /// <param name="conn"></param>
        /// <param name="databaseName"></param>
        /// <returns></returns>
        public static DataKit Init(SharedEnum.TypeDB tdb, string conn, string databaseName = null)
        {
            DataKit dk = null;

            try
            {
                //连接信息
                DbConnection dbConnection = null;
                //打印信息
                var listInfo = new List <string>();

                //额外处理 SQLite
                if (tdb == SharedEnum.TypeDB.SQLite)
                {
                    //下载 SQLite 文件
                    var ds = conn[12..].TrimEnd(';');
Ejemplo n.º 3
0
    /// <summary>
    /// 入口
    /// </summary>
    /// <param name="tdb"></param>
    /// <param name="conn"></param>
    /// <param name="databaseName"></param>
    /// <param name="dkCall"></param>
    /// <returns></returns>
    static SharedResultVM Entry(SharedEnum.TypeDB tdb, string conn, string databaseName, Func <DataKit, object> dkCall)
    {
        var vm = new SharedResultVM();

        try
        {
            var dk = DataKit.Init(tdb, conn, databaseName);
            if (dk != null)
            {
                vm.Data = dkCall(dk);
                vm.Set(SharedEnum.RTag.success);
            }
            else
            {
                vm.Set(SharedEnum.RTag.error);
            }
        }
        catch (Exception ex)
        {
            vm.Set(ex);
        }

        return(vm);
    }
Ejemplo n.º 4
0
 /// <summary>
 /// 构造
 /// </summary>
 /// <param name="typeDB">类型</param>
 /// <param name="dbConnection">连接</param>
 public DataKit(SharedEnum.TypeDB typeDB, DbConnection dbConnection)
 {
     tdb = typeDB;
     db  = new DbHelper(dbConnection);
 }
Ejemplo n.º 5
0
 public SharedResultVM GetTableDDL(SharedEnum.TypeDB tdb, string conn, string tableName, string schemaName = null, string databaseName = null)
 {
     return(Entry(tdb, conn, databaseName, dk => dk.GetTableDDL(tableName, schemaName, databaseName)));
 }
Ejemplo n.º 6
0
 public SharedResultVM GetDatabase(SharedEnum.TypeDB tdb, string conn, string filterDatabaseName = null)
 {
     return(Entry(tdb, conn, null, dk => dk.GetDatabase(filterDatabaseName)));
 }
Ejemplo n.º 7
0
 public SharedResultVM GetDatabaseName(SharedEnum.TypeDB tdb, string conn)
 {
     return(Entry(tdb, conn, null, dk => dk.GetDatabaseName()));
 }
Ejemplo n.º 8
0
 public SharedResultVM ExecuteSql([FromForm] SharedEnum.TypeDB tdb, [FromForm] string conn, [FromForm] string sql, [FromForm] string databaseName = null)
 {
     return(Entry(tdb, conn, databaseName, dk => dk.ExecuteSql(sql)));
 }
Ejemplo n.º 9
0
 public SharedResultVM SetColumnComment([FromForm] SharedEnum.TypeDB tdb, [FromForm] string conn, [FromForm] string tableName, [FromForm] string columnName, [FromForm] string columnComment, [FromForm] string schemaName = null, [FromForm] string databaseName = null)
 {
     return(Entry(tdb, conn, databaseName, dk => dk.SetColumnComment(tableName, columnName, columnComment, schemaName, databaseName)));
 }
Ejemplo n.º 10
0
 public SharedResultVM GetColumn([FromForm] SharedEnum.TypeDB tdb, [FromForm] string conn, [FromForm] string filterSchemaNameTableName = null, [FromForm] string databaseName = null)
 {
     return(Entry(tdb, conn, databaseName, dk => dk.GetColumn(filterSchemaNameTableName, databaseName)));
 }