DbFirst add WhereColumns

This commit is contained in:
skx 2020-04-16 18:14:26 +08:00
parent 30b9baf529
commit 1e82ae02c4
6 changed files with 33 additions and 15 deletions

View File

@ -19,6 +19,7 @@ namespace SqlSugar
private string Namespace { get; set; } private string Namespace { get; set; }
private bool IsAttribute { get; set; } private bool IsAttribute { get; set; }
private bool IsDefaultValue { get; set; } private bool IsDefaultValue { get; set; }
private Func<string, bool> WhereColumnsfunc;
private ISqlBuilder SqlBuilder private ISqlBuilder SqlBuilder
{ {
get get
@ -89,13 +90,13 @@ namespace SqlSugar
this.PropertyTemplate = func(this.PropertyTemplate); this.PropertyTemplate = func(this.PropertyTemplate);
return this; return this;
} }
public RazorFirst UseRazorAnalysis(string razorClassTemplate,string classNamespace="Models" ) public RazorFirst UseRazorAnalysis(string razorClassTemplate, string classNamespace = "Models")
{ {
if (razorClassTemplate == null) if (razorClassTemplate == null)
{ {
razorClassTemplate = ""; razorClassTemplate = "";
} }
razorClassTemplate=razorClassTemplate.Replace("@Model.Namespace", classNamespace); razorClassTemplate = razorClassTemplate.Replace("@Model.Namespace", classNamespace);
var result = new RazorFirst(); var result = new RazorFirst();
if (this.Context.CurrentConnectionConfig.ConfigureExternalServices?.RazorService != null) if (this.Context.CurrentConnectionConfig.ConfigureExternalServices?.RazorService != null)
{ {
@ -108,7 +109,7 @@ namespace SqlSugar
var columns = this.Context.DbMaintenance.GetColumnInfosByTableName(item.Name, false); var columns = this.Context.DbMaintenance.GetColumnInfosByTableName(item.Name, false);
RazorTableInfo table = new RazorTableInfo() RazorTableInfo table = new RazorTableInfo()
{ {
Columns = columns.Select(it => new RazorColumnInfo() Columns = columns.Where(it => WhereColumnsfunc == null || WhereColumnsfunc(it.DbColumnName)).Select(it => new RazorColumnInfo()
{ {
ColumnDescription = it.ColumnDescription, ColumnDescription = it.ColumnDescription,
DataType = it.DataType, DataType = it.DataType,
@ -124,7 +125,7 @@ namespace SqlSugar
}; };
foreach (var col in table.Columns) foreach (var col in table.Columns)
{ {
col.DataType = GetPropertyTypeName(columns.First(it=>it.DbColumnName==col.DbColumnName)); col.DataType = GetPropertyTypeName(columns.First(it => it.DbColumnName == col.DbColumnName));
} }
razorList.Add(table); razorList.Add(table);
} }
@ -167,6 +168,13 @@ namespace SqlSugar
return this; return this;
} }
public IDbFirst WhereColumns(Func<string, bool> func)
{
WhereColumnsfunc = func;
return this;
}
public IDbFirst Where(params string[] objectNames) public IDbFirst Where(params string[] objectNames)
{ {
if (objectNames.HasValue()) if (objectNames.HasValue())
@ -235,7 +243,7 @@ namespace SqlSugar
classText = classText.Replace(DbFirstTemplate.KeySugarTable, IsAttribute ? string.Format(DbFirstTemplate.ValueSugarTable, tableInfo.Name) : null); classText = classText.Replace(DbFirstTemplate.KeySugarTable, IsAttribute ? string.Format(DbFirstTemplate.ValueSugarTable, tableInfo.Name) : null);
if (columns.HasValue()) if (columns.HasValue())
{ {
foreach (var item in columns) foreach (var item in columns.Where(it => WhereColumnsfunc == null || WhereColumnsfunc(it.DbColumnName)))
{ {
var isLast = columns.Last() == item; var isLast = columns.Last() == item;
var index = columns.IndexOf(item); var index = columns.IndexOf(item);

View File

@ -15,11 +15,12 @@ namespace SqlSugar
IDbFirst SettingNamespaceTemplate(Func<string, string> func); IDbFirst SettingNamespaceTemplate(Func<string, string> func);
RazorFirst UseRazorAnalysis(string razorClassString, string classNamespace = "Models"); RazorFirst UseRazorAnalysis(string razorClassString, string classNamespace = "Models");
IDbFirst IsCreateAttribute(bool isCreateAttribute = true); IDbFirst IsCreateAttribute(bool isCreateAttribute = true);
IDbFirst IsCreateDefaultValue(bool isCreateDefaultValue=true); IDbFirst IsCreateDefaultValue(bool isCreateDefaultValue = true);
IDbFirst Where(params string[] objectNames); IDbFirst Where(params string[] objectNames);
IDbFirst Where(Func<string,bool> func); IDbFirst Where(Func<string, bool> func);
IDbFirst WhereColumns(Func<string, bool> func);
IDbFirst Where(DbObjectType dbObjectType); IDbFirst Where(DbObjectType dbObjectType);
void CreateClassFile(string directoryPath, string nameSpace = "Models"); void CreateClassFile(string directoryPath, string nameSpace = "Models");
Dictionary<string, string> ToClassStringList(string nameSpace = "Models"); Dictionary<string, string> ToClassStringList(string nameSpace = "Models");
void Init(); void Init();
} }

View File

@ -65,7 +65,7 @@ namespace OrmTest
} }
db.DbFirst.IsCreateAttribute().CreateClassFile("c:\\Demo\\8", "Models"); db.DbFirst.IsCreateAttribute().CreateClassFile("c:\\Demo\\8", "Models");
db.DbFirst.WhereColumns(it => it.ToUpper()!="ID").CreateClassFile("c:\\Demo\\9", "Models");
//Use Razor Template //Use Razor Template
//db.DbFirst.UseRazorAnalysis(RazorFirst.DefaultRazorClassTemplate).CreateClassFile(""); //db.DbFirst.UseRazorAnalysis(RazorFirst.DefaultRazorClassTemplate).CreateClassFile("");

View File

@ -19,6 +19,7 @@ namespace SqlSugar
private string Namespace { get; set; } private string Namespace { get; set; }
private bool IsAttribute { get; set; } private bool IsAttribute { get; set; }
private bool IsDefaultValue { get; set; } private bool IsDefaultValue { get; set; }
private Func<string, bool> WhereColumnsfunc;
private ISqlBuilder SqlBuilder private ISqlBuilder SqlBuilder
{ {
get get
@ -89,13 +90,13 @@ namespace SqlSugar
this.PropertyTemplate = func(this.PropertyTemplate); this.PropertyTemplate = func(this.PropertyTemplate);
return this; return this;
} }
public RazorFirst UseRazorAnalysis(string razorClassTemplate,string classNamespace="Models" ) public RazorFirst UseRazorAnalysis(string razorClassTemplate, string classNamespace = "Models")
{ {
if (razorClassTemplate == null) if (razorClassTemplate == null)
{ {
razorClassTemplate = ""; razorClassTemplate = "";
} }
razorClassTemplate=razorClassTemplate.Replace("@Model.Namespace", classNamespace); razorClassTemplate = razorClassTemplate.Replace("@Model.Namespace", classNamespace);
var result = new RazorFirst(); var result = new RazorFirst();
if (this.Context.CurrentConnectionConfig.ConfigureExternalServices?.RazorService != null) if (this.Context.CurrentConnectionConfig.ConfigureExternalServices?.RazorService != null)
{ {
@ -108,7 +109,7 @@ namespace SqlSugar
var columns = this.Context.DbMaintenance.GetColumnInfosByTableName(item.Name, false); var columns = this.Context.DbMaintenance.GetColumnInfosByTableName(item.Name, false);
RazorTableInfo table = new RazorTableInfo() RazorTableInfo table = new RazorTableInfo()
{ {
Columns = columns.Select(it => new RazorColumnInfo() Columns = columns.Where(it => WhereColumnsfunc == null || WhereColumnsfunc(it.DbColumnName)).Select(it => new RazorColumnInfo()
{ {
ColumnDescription = it.ColumnDescription, ColumnDescription = it.ColumnDescription,
DataType = it.DataType, DataType = it.DataType,
@ -124,7 +125,7 @@ namespace SqlSugar
}; };
foreach (var col in table.Columns) foreach (var col in table.Columns)
{ {
col.DataType = GetPropertyTypeName(columns.First(it=>it.DbColumnName==col.DbColumnName)); col.DataType = GetPropertyTypeName(columns.First(it => it.DbColumnName == col.DbColumnName));
} }
razorList.Add(table); razorList.Add(table);
} }
@ -167,6 +168,13 @@ namespace SqlSugar
return this; return this;
} }
public IDbFirst WhereColumns(Func<string, bool> func)
{
WhereColumnsfunc = func;
return this;
}
public IDbFirst Where(params string[] objectNames) public IDbFirst Where(params string[] objectNames)
{ {
if (objectNames.HasValue()) if (objectNames.HasValue())
@ -235,7 +243,7 @@ namespace SqlSugar
classText = classText.Replace(DbFirstTemplate.KeySugarTable, IsAttribute ? string.Format(DbFirstTemplate.ValueSugarTable, tableInfo.Name) : null); classText = classText.Replace(DbFirstTemplate.KeySugarTable, IsAttribute ? string.Format(DbFirstTemplate.ValueSugarTable, tableInfo.Name) : null);
if (columns.HasValue()) if (columns.HasValue())
{ {
foreach (var item in columns) foreach (var item in columns.Where(it => WhereColumnsfunc == null || WhereColumnsfunc(it.DbColumnName)))
{ {
var isLast = columns.Last() == item; var isLast = columns.Last() == item;
var index = columns.IndexOf(item); var index = columns.IndexOf(item);

View File

@ -18,6 +18,7 @@ namespace SqlSugar
IDbFirst IsCreateDefaultValue(bool isCreateDefaultValue=true); IDbFirst IsCreateDefaultValue(bool isCreateDefaultValue=true);
IDbFirst Where(params string[] objectNames); IDbFirst Where(params string[] objectNames);
IDbFirst Where(Func<string,bool> func); IDbFirst Where(Func<string,bool> func);
IDbFirst WhereColumns(Func<string, bool> func);
IDbFirst Where(DbObjectType dbObjectType); IDbFirst Where(DbObjectType dbObjectType);
void CreateClassFile(string directoryPath, string nameSpace = "Models"); void CreateClassFile(string directoryPath, string nameSpace = "Models");
Dictionary<string, string> ToClassStringList(string nameSpace = "Models"); Dictionary<string, string> ToClassStringList(string nameSpace = "Models");

View File

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>
<Version>5.0.0.13</Version> <Version>5.0.0.14</Version>
<Copyright>sun_kai_xuan</Copyright> <Copyright>sun_kai_xuan</Copyright>
<PackageProjectUrl>https://github.com/sunkaixuan/SqlSugar</PackageProjectUrl> <PackageProjectUrl>https://github.com/sunkaixuan/SqlSugar</PackageProjectUrl>
<PackageLicenseUrl></PackageLicenseUrl> <PackageLicenseUrl></PackageLicenseUrl>