private IEdmModel ModelDB() { try { #region odata var optionsBuilder = new DbContextOptionsBuilder <DynamicDbContext>(); IEdmModel edmModel; //optionsBuilder = optionsBuilder.UseSqlServer("Server=.;Initial Catalog=test;Trusted_Connection=No;UID=sa;PWD=Your_password123;Connect Timeout=5"); //using (var providerSchema = new SqlServerSchema(optionsBuilder.Options)) var con = Environment.GetEnvironmentVariable("MySql"); optionsBuilder = optionsBuilder.UseMySQL(con); using (var providerSchema = new MySqlSchema(optionsBuilder.Options)) //var con = Environment.GetEnvironmentVariable("Postgres"); //optionsBuilder = optionsBuilder.UseNpgsql(con); //using (var providerSchema = new PostgreSqlSchema(optionsBuilder.Options)) { edmModel = DynamicMiddlewareHelper.CreateEdmModel(providerSchema, informationSchemaMapping: null); } return(edmModel); #endregion } catch (Exception ex) { Console.WriteLine($" exception {ex.Message}"); return(null); } }
/// <summary> /// 创建一个数据库架构实例 /// </summary> /// <param name="db">数据提供程序实例</param> /// <returns></returns> public static DbSchema Create(Database db) { DbSchema schema = null; switch (db.DatabaseType) { case DatabaseType.SqlServer: schema = new SqlServerSchema(db); break; case DatabaseType.Oracle: schema = new OracleSchema(db); break; case DatabaseType.MySql: schema = new MySqlSchema(db); break; case DatabaseType.DB2: schema = new DB2Schema(db); break; case DatabaseType.SQLite: schema = new SQLiteSchema(db); break; case DatabaseType.OleDb: schema = new OleDbSchema(db); break; default: break; } return schema; }
public static void startExecute(GeneratorConfig allConfig) { // GeneratorConfig配置处理 var db = new MySqlSchema(allConfig.dbConfig); var tableList = db.GetTablesList(); if (!string.IsNullOrEmpty(allConfig.inputTables)) { tableList = tableList.Where(c => allConfig.inputTables.Split(',').Contains(c)).ToList(); } if (tableList.Count == 0) { Console.WriteLine("表名不存在"); return; } allConfig.tableList = tableList; try { GenerateTemplate_Model(allConfig); GenerateTemplate_Rep(allConfig); GenerateTemplate_IRep(allConfig); Pause(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); throw ex; } }
/// <summary> /// 创建一个数据库架构实例 /// </summary> /// <param name="db">数据提供程序实例</param> /// <returns></returns> public static DbSchema Create(Database db) { DbSchema schema = null; switch (db.DatabaseType) { case DatabaseType.SqlServer: //schema = new SqlServerSchema(db); schema = new SqlServerSchema(db); break; case DatabaseType.Oracle: schema = new OracleSchema(db); break; case DatabaseType.MySql: schema = new MySqlSchema(db); break; case DatabaseType.DB2: schema = new DB2Schema(db); break; case DatabaseType.SQLite: schema = new SQLiteSchema(db); break; default: break; } return(schema); }
private static void GenerateTemplate_Model(GeneratorConfig allConfig) { Console.WriteLine("===============生成Model=================="); DisplayTemplateName(allConfig.modelTemplate); var templateText = TemplateHelper.ReadTemplate(allConfig.modelTemplate); var db = new MySqlSchema(allConfig.dbConfig); foreach (var tableName in allConfig.tableList) { var table = db.GetTableMetadata(tableName); if (!string.IsNullOrEmpty(allConfig.trimTablePre)) { table.ClassName = TrimPre(tableName, allConfig.trimTablePre); } if (!string.IsNullOrEmpty(allConfig.baseColumn)) { table.BaseColumns = allConfig.baseColumn.Split(',').ToList(); } table.TableName = tableName; //if (table.PKs.Count == 0) throw new Exception(string.Format("表{0}:没有设置主键!", tableName)); Display(tableName, table); dynamic viewbag = new DynamicViewBag(); viewbag.classnameVal = table.ClassName; viewbag.namespaceVal = allConfig.modelNamespaceVal; allConfig.table = table; var outputText = TemplateHelper.Parse(TemplateKey.Model, templateText, allConfig, viewbag); outputText = TemplateHelper.Clean(outputText, RegexPub.H1()); var path = allConfig.modelSavePath + "\\" + allConfig.moduleName; FileHelper.Save(string.Format(@"{0}\{1}.cs", path, viewbag.classnameVal), outputText); } Console.WriteLine("===============生成Model完成=================="); }