Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        /// <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;
        }
Ejemplo n.º 3
0
        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;
            }
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
        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完成==================");
        }