public static bool Exists(string connectionString, DatabaseType dbType) { Afx.Data.Entity.Schema.DatabaseSchema databaseSchema = null; switch (dbType) { case DatabaseType.MsSQLServer: databaseSchema = new Afx.Data.MSSQLServer.Entity.Schema.MsSqlDatabaseSchema(connectionString); break; case DatabaseType.MySQL: databaseSchema = new Afx.Data.MySql.Entity.Schema.MySqlDatabaseSchema(connectionString); break; case DatabaseType.SQLite: databaseSchema = new Afx.Data.SQLite.Entity.Schema.SQLiteDatabaseSchema(connectionString); break; case DatabaseType.Oracle: databaseSchema = new Afx.Data.Oracle.Entity.Schema.OracleDatabaseSchema(connectionString); break; default: throw new Exception("DatabaseType is error!"); } using (databaseSchema) { return(databaseSchema.Exist()); } }
internal static void Initialize(FileContext context, Type dbContextType) { if (!ConfigUtils.InitDatabase) { return; } lock (lockObj) { if (!AfxTcpFileServerSample.Common.ConfigUtils.InitDatabase) { return; } context.WriteSQL("-- Initialize Database begin"); try { Afx.Data.Entity.Schema.DatabaseSchema databaseSchema = null; Afx.Data.Entity.Schema.TableSchema tableSchema = null; switch (ConfigUtils.DatabaseType) { case DatabaseType.MsSQLServer: databaseSchema = new Afx.Data.MSSQLServer.Entity.Schema.MsSqlDatabaseSchema(ConfigUtils.ConnectionString); tableSchema = new Afx.Data.MSSQLServer.Entity.Schema.MsSqlTableSchema(ConfigUtils.ConnectionString); break; case DatabaseType.MySQL: databaseSchema = new Afx.Data.MySql.Entity.Schema.MySqlDatabaseSchema(ConfigUtils.ConnectionString); tableSchema = new Afx.Data.MySql.Entity.Schema.MySqlTableSchema(ConfigUtils.ConnectionString); break; case DatabaseType.SQLite: databaseSchema = new Afx.Data.SQLite.Entity.Schema.SQLiteDatabaseSchema(ConfigUtils.ConnectionString); tableSchema = new Afx.Data.SQLite.Entity.Schema.SQLiteTableSchema(ConfigUtils.ConnectionString); break; case DatabaseType.Oracle: databaseSchema = new Afx.Data.Oracle.Entity.Schema.OracleDatabaseSchema(ConfigUtils.ConnectionString); tableSchema = new Afx.Data.Oracle.Entity.Schema.OracleTableSchema(ConfigUtils.ConnectionString); break; default: throw new Exception("DatabaseType is error!"); } if (databaseSchema != null && tableSchema != null) { databaseSchema.Log = context.WriteSQL; tableSchema.Log = context.WriteSQL; using (var builder = new Afx.Data.Entity.Schema.BuildDatabase(databaseSchema, tableSchema)) { builder.Build <FileContext>(); } } context.WriteSQL("-- InitBaseData begin"); new InitDb().InitBaseData(context); context.WriteSQL("-- InitBaseData end"); context.WriteSQL("-- Initialize Database end"); } catch (Exception ex) { LogUtils.Error("【InitDataBase】", ex); } } }