mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 09:15:27 +08:00 
			
		
		
		
	- FreeSql.Generator 增加 -Match 参数只生成匹配的表;
This commit is contained in:
		@@ -4,6 +4,7 @@ using System.Drawing;
 | 
				
			|||||||
using System.IO;
 | 
					using System.IO;
 | 
				
			||||||
using System.Linq;
 | 
					using System.Linq;
 | 
				
			||||||
using System.Text;
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Text.RegularExpressions;
 | 
				
			||||||
using System.Threading;
 | 
					using System.Threading;
 | 
				
			||||||
using Console = Colorful.Console;
 | 
					using Console = Colorful.Console;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -18,6 +19,7 @@ namespace FreeSql.Generator
 | 
				
			|||||||
        DataType ArgsDbType { get; }
 | 
					        DataType ArgsDbType { get; }
 | 
				
			||||||
        string ArgsConnectionString { get; }
 | 
					        string ArgsConnectionString { get; }
 | 
				
			||||||
        string ArgsFilter { get; }
 | 
					        string ArgsFilter { get; }
 | 
				
			||||||
 | 
					        string ArgsMatch { get; }
 | 
				
			||||||
        string ArgsFileName { get; }
 | 
					        string ArgsFileName { get; }
 | 
				
			||||||
        internal string ArgsOutput { get; private set; }
 | 
					        internal string ArgsOutput { get; private set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -56,6 +58,7 @@ new Colorful.Formatter("v" + string.Join(".", typeof(ConsoleApp).Assembly.GetNam
 | 
				
			|||||||
            ArgsNameOptions = new[] { false, false, false, false };
 | 
					            ArgsNameOptions = new[] { false, false, false, false };
 | 
				
			||||||
            ArgsNameSpace = "MyProject";
 | 
					            ArgsNameSpace = "MyProject";
 | 
				
			||||||
            ArgsFilter = "";
 | 
					            ArgsFilter = "";
 | 
				
			||||||
 | 
					            ArgsMatch = "";
 | 
				
			||||||
            ArgsFileName = "{name}.cs";
 | 
					            ArgsFileName = "{name}.cs";
 | 
				
			||||||
            Action<string> setArgsOutput = value =>
 | 
					            Action<string> setArgsOutput = value =>
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
@@ -112,6 +115,8 @@ new Colorful.Formatter("v" + string.Join(".", typeof(ConsoleApp).Assembly.GetNam
 | 
				
			|||||||
                               默认生成:表+视图+存储过程
 | 
					                               默认生成:表+视图+存储过程
 | 
				
			||||||
                               如果不想生成视图和存储过程 -Filter View+StoreProcedure
 | 
					                               如果不想生成视图和存储过程 -Filter View+StoreProcedure
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					     -Match                    正则表达式,只生成匹配的表,如:dbo\.TB_.+
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     -FileName                 文件名,默认:{name}.cs
 | 
					     -FileName                 文件名,默认:{name}.cs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     -Output                   保存路径,默认为当前 shell 所在目录
 | 
					     -Output                   保存路径,默认为当前 shell 所在目录
 | 
				
			||||||
@@ -179,6 +184,11 @@ new Colorful.Formatter("推荐在实体类目录创建 gen.bat,双击它重新
 | 
				
			|||||||
                        ArgsFilter = args[a + 1];
 | 
					                        ArgsFilter = args[a + 1];
 | 
				
			||||||
                        a++;
 | 
					                        a++;
 | 
				
			||||||
                        break;
 | 
					                        break;
 | 
				
			||||||
 | 
					                    case "-match":
 | 
				
			||||||
 | 
					                        ArgsMatch = args[a + 1];
 | 
				
			||||||
 | 
					                        if (Regex.IsMatch("", ArgsMatch)) { } //throw
 | 
				
			||||||
 | 
					                        a++;
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
                    case "-filename":
 | 
					                    case "-filename":
 | 
				
			||||||
                        ArgsFileName = args[a + 1];
 | 
					                        ArgsFileName = args[a + 1];
 | 
				
			||||||
                        a++;
 | 
					                        a++;
 | 
				
			||||||
@@ -214,6 +224,10 @@ new Colorful.Formatter("推荐在实体类目录创建 gen.bat,双击它重新
 | 
				
			|||||||
                //开始生成操作
 | 
					                //开始生成操作
 | 
				
			||||||
                foreach (var table in outputTables)
 | 
					                foreach (var table in outputTables)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
 | 
					                    if (string.IsNullOrEmpty(ArgsMatch) == false)
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        if (Regex.IsMatch($"{table.Schema}.{table.Name}".TrimStart('.'), ArgsMatch) == false) continue;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
                    switch (table.Type)
 | 
					                    switch (table.Type)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        case DatabaseModel.DbTableType.TABLE:
 | 
					                        case DatabaseModel.DbTableType.TABLE:
 | 
				
			||||||
@@ -285,7 +299,7 @@ new Colorful.Formatter("推荐在实体类目录创建 gen.bat,双击它重新
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                File.WriteAllText(rebuildBat, $@"
 | 
					                File.WriteAllText(rebuildBat, $@"
 | 
				
			||||||
FreeSql.Generator -Razor ""__razor.cshtml.txt"" -NameOptions {string.Join(",", ArgsNameOptions.Select(a => a ? 1 : 0))} -NameSpace {ArgsNameSpace} -DB ""{ArgsDbType},{ArgsConnectionString}""{(string.IsNullOrEmpty(ArgsFilter) ? "" : $" -Filter \"{ArgsFilter}\"")} -FileName ""{ArgsFileName}""
 | 
					FreeSql.Generator -Razor ""__razor.cshtml.txt"" -NameOptions {string.Join(",", ArgsNameOptions.Select(a => a ? 1 : 0))} -NameSpace {ArgsNameSpace} -DB ""{ArgsDbType},{ArgsConnectionString}""{(string.IsNullOrEmpty(ArgsFilter) ? "" : $" -Filter \"{ArgsFilter}\"")}{(string.IsNullOrEmpty(ArgsMatch) ? "" : $" -Match \"{ArgsMatch}\"")} -FileName ""{ArgsFileName}""
 | 
				
			||||||
");
 | 
					");
 | 
				
			||||||
                Console.WriteFormatted(" OUT -> " + rebuildBat + "    (以后) 双击它重新生成实体\r\n", Color.Magenta);
 | 
					                Console.WriteFormatted(" OUT -> " + rebuildBat + "    (以后) 双击它重新生成实体\r\n", Color.Magenta);
 | 
				
			||||||
                ++outputCounter;
 | 
					                ++outputCounter;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user