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>); }
/// <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(';');
/// <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); }
/// <summary> /// 构造 /// </summary> /// <param name="typeDB">类型</param> /// <param name="dbConnection">连接</param> public DataKit(SharedEnum.TypeDB typeDB, DbConnection dbConnection) { tdb = typeDB; db = new DbHelper(dbConnection); }
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))); }
public SharedResultVM GetDatabase(SharedEnum.TypeDB tdb, string conn, string filterDatabaseName = null) { return(Entry(tdb, conn, null, dk => dk.GetDatabase(filterDatabaseName))); }
public SharedResultVM GetDatabaseName(SharedEnum.TypeDB tdb, string conn) { return(Entry(tdb, conn, null, dk => dk.GetDatabaseName())); }
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))); }
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))); }
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))); }