private void ValidateArgs(string[] p) { if (p.Length == 0) { ShowOption(); } else { if (p[0] == "list") { ShowOption(); } if (p[0] == "init") { InitDal(p); } if (p[0] == "generate") { GenDal(p); } if (p[0] == "updateSettings") { UpdateDal(p); } if (p[0] == "updateDALFiles") { var dal = new DalGenerator(); dal.SaveChanges(); } } }
private void InitDal(string[] p) { if (p.Length < 3) { Console.WriteLine("Project name is required"); } else { GenerateSettings m = new GenerateSettings { AuthorName = "", CoreSdkVer = "2.1.604", SolutionName = p[2] + @".sln", BaseDirectory = System.IO.Directory.GetCurrentDirectory(), CompanyName = "", CopyRight = " 2019", DalSpaceName = p[2] + ".Business", DalPackages = new System.Collections.Generic.List <string>(), DalRefferences = new System.Collections.Generic.List <string>(), ModelNames = new List <string>(), DataFileName = System.IO.Directory.GetCurrentDirectory() + @"\" + p[2] + @"\" + p[2] + @".Data\bin\Release\netstandard2.0\" + p[2] + ".Data.dll", DbContextName = p[2] + "DbContext", DevConnectionString = "DevConnection", ModelSpaceName = p[2] + ".data", ProjectName = p[2], WebApiCreation = false, WebApiFolder = p[2] + ".WebApi", WebApiPackages = new System.Collections.Generic.List <string>(), WebApiRefferences = new System.Collections.Generic.List <string>(), SDKCreation = false, SDKFolder = p[2] + ".SDK", SDKPackages = new System.Collections.Generic.List <string>(), SDKRefferences = new System.Collections.Generic.List <string>(), WebCreation = false, WebFolder = p[2] + ".Web", WebPackages = new System.Collections.Generic.List <string>(), WebRefferences = new System.Collections.Generic.List <string>() }; m.DalRefferences.Add(System.IO.Directory.GetCurrentDirectory() + @"\" + p[2] + @"\" + p[2] + @".Data\" + p[2] + @".Data.csproj"); m.DalPackages.Add(@"Microsoft.EntityFrameworkCore "); m.DalPackages.Add(@"Newtonsoft.Json "); m.WebApiRefferences.Add(System.IO.Directory.GetCurrentDirectory() + @"\" + p[2] + @"\" + p[2] + @".Business\" + p[2] + @".Business.csproj"); m.WebApiRefferences.Add(System.IO.Directory.GetCurrentDirectory() + @"\" + p[2] + @"\" + p[2] + @".Data\" + p[2] + @".Data.csproj"); m.WebApiPackages.Add(@"Microsoft.EntityFrameworkCore "); m.WebApiPackages.Add(@"Newtonsoft.Json "); System.IO.File.WriteAllText(System.IO.Directory.GetCurrentDirectory() + @"\FrameworkSettings.json", Newtonsoft.Json.JsonConvert.SerializeObject(m)); var db = new DalGenerator(); db.InitFiles(); } }
public void CodeGenerateOneView(string pViewName, string pSchemaName) { TypeLibraryGenerator typeGen = new TypeLibraryGenerator(this); DalGenerator dalGen = this.DalGenerator; BsGenerator bsGen = new BsGenerator(this); IView view = GetView(pViewName, pSchemaName); typeGen.Render(Output, view, UseSchemaNameInSqlQueries, UseSchemaNameInFolders, ListDatabaseAbbreviations); dalGen.Render(Output, view, UseSchemaNameInSqlQueries, UseSchemaNameInFolders, ListDatabaseAbbreviations); bsGen.Render(Output, view, UseSchemaNameInSqlQueries, UseSchemaNameInFolders, ListDatabaseAbbreviations); }
public void CodeGenerateOneTable(string pTableName, string pSchemaName) { // TODO ignore table name suffix . Make this generic if (pTableName.StartsWith("sqlite_")) { return; } TypeLibraryGenerator typeGen = this.TypeLibraryGenerator; DalGenerator dalGen = this.DalGenerator; BsGenerator bsGen = new BsGenerator(this); ITable table = this.getTable(pTableName, pSchemaName); typeGen.Render(Output, table, UseSchemaNameInSqlQueries, UseSchemaNameInFolders, ListDatabaseAbbreviations); dalGen.Render(Output, table, UseSchemaNameInSqlQueries, UseSchemaNameInFolders, ListDatabaseAbbreviations); bsGen.Render(Output, table, UseSchemaNameInSqlQueries, UseSchemaNameInFolders, ListDatabaseAbbreviations); }
protected override void OnHandler(ParameterHandlerInfo info) { Core.Log.Warning("Starting Dal Generator Test"); var folder = "./Data"; var connectionString = "Data Source=10.10.1.21;Initial Catalog=AGSW_MIDDLE;User Id=sa;Password=genesis;Pooling=True"; //"Data Source=10.10.1.50;Initial Catalog=MRFLY_MIDDLE;User Id=MRFLY_SVC;Password=mISTERfLY13;Pooling=True"; var ssda = new SqlServerDataAccess(connectionString, DataAccessType.Query); if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } Core.Log.InfoBasic("Getting Schema"); var schema = ssda.GetSchema(); schema.SerializeToXmlFile(Path.Combine(folder, "dbSchema.xml")); Core.Log.InfoBasic("Creating Generator"); var dGen = new DalGenerator(schema, "Agsw.Travel.Data") { GetEntityNameDelegate = name => { name = name.Replace("_", " "); name = name.Substring(0, 3) + name.Substring(4).CapitalizeEachWords(); name = name.Replace("-", "_"); return(name.RemoveSpaces()); }, GeneratorType = DalGeneratorType.StoredProcedure }; Core.Log.InfoBasic("Generating SQLServer Dal: {0}", folder); dGen.Create(folder); Core.Log.InfoBasic("Generating PostgreSQL Dal: {0}", folder); var connectionString2 = "Server=10.10.1.50;Port=5432;Database=FLY_MIDDLE;User Id=postgres;Password=genesis;"; var pdal = new PostgreSQLDataAccess(connectionString2, DataAccessType.Query); var postgresSchema = pdal.GetSchema(); dGen.Create(folder, pdal); Core.Log.InfoBasic("Generating MySql Dal: {0}", folder); var connectionString3 = "MySqlConnString"; var sdal = new MySqlDataAccess(connectionString3, DataAccessType.Query); dGen.Create(folder, sdal); Core.Log.InfoBasic("Generating Sqlite Dal: {0}", folder); var connectionString4 = "SqliteConnString"; var sldal = new SQLiteDataAccess(connectionString4); dGen.Create(folder, sldal); }
/// <summary> /// 点击“批量生成按钮” =》 批量生成 Model、DAL、数据库结构表 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void generate_button_Click(object sender, EventArgs e) { //1. 判断是否选择了表 if (Right_listBox.Items.Count <= 0) { MessageBox.Show("请选择要生成的表!"); return; } //2. 判断要生成的路径是否为空 string outputPath = path_textBox.Text.Trim(); if (outputPath.ToString() == "") { //如果是空值,则给一个默认路径 outputPath = "\\\\Mac\\Home\\Desktop"; path_textBox.Text = outputPath; } //3. 判断要生成的路径是否存在 if (!Directory.Exists(outputPath)) { try { //如果路径不存在,则自动生成路径 Directory.CreateDirectory(outputPath); } catch (Exception) { //出错 MessageBox.Show("路径不存在!请选择正确的生成目录!"); return; } } //4. 判断命名空间是否为空 if (namespace_textBox.Text.Trim().ToString() == "") { MessageBox.Show("请输入命名空间!"); return; } //5. 获取基本信息 string connStr = getConnstr(); string tablePrefix = table_prefix_textBox.Text.Trim(); string author = author_textBox.Text.Trim(); string ns = namespace_textBox.Text.Trim(); string dbName = DB_name_textBox.Text.Trim(); //6. 生成 Model ModelGenerator.GenerateModel(ns, author, outputPath, tablePrefix, connStr, Right_listBox.Items); //7. 生成 DAL DalGenerator.GenerateDAL(ns, author, outputPath, tablePrefix, connStr, Right_listBox.Items); //8. 生成数据库操作助手类 MSSQLHelperGenerator.GenerateMSSQLHelper(ns, outputPath, connStr); //9. 生成 数据库文档 SqlFileGenerator.GenerateSqlFile(outputPath, connStr, listRight, dbName); //10. 告知生成成功 string successMsg = "恭喜你!生成成功!"; MessageBox.Show(successMsg); //11. 打开生成后的目录 System.Diagnostics.Process.Start(outputPath); }