- FreeSql.Generator 增加 -Match 参数只生成匹配的表;

This commit is contained in:
28810 2020-04-14 16:12:05 +08:00
parent bf5090938a
commit f8fa15054c

View File

@ -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;