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 bool IsAttribute { get; set; }
private bool IsDefaultValue { get; set; }
private Func<string, bool> WhereColumnsfunc;
private ISqlBuilder SqlBuilder
{
get
@ -108,7 +109,7 @@ namespace SqlSugar
var columns = this.Context.DbMaintenance.GetColumnInfosByTableName(item.Name, false);
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,
DataType = it.DataType,
@ -167,6 +168,13 @@ namespace SqlSugar
return this;
}
public IDbFirst WhereColumns(Func<string, bool> func)
{
WhereColumnsfunc = func;
return this;
}
public IDbFirst Where(params string[] objectNames)
{
if (objectNames.HasValue())
@ -235,7 +243,7 @@ namespace SqlSugar
classText = classText.Replace(DbFirstTemplate.KeySugarTable, IsAttribute ? string.Format(DbFirstTemplate.ValueSugarTable, tableInfo.Name) : null);
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 index = columns.IndexOf(item);

View File

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

View File

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

View File

@ -19,6 +19,7 @@ namespace SqlSugar
private string Namespace { get; set; }
private bool IsAttribute { get; set; }
private bool IsDefaultValue { get; set; }
private Func<string, bool> WhereColumnsfunc;
private ISqlBuilder SqlBuilder
{
get
@ -108,7 +109,7 @@ namespace SqlSugar
var columns = this.Context.DbMaintenance.GetColumnInfosByTableName(item.Name, false);
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,
DataType = it.DataType,
@ -167,6 +168,13 @@ namespace SqlSugar
return this;
}
public IDbFirst WhereColumns(Func<string, bool> func)
{
WhereColumnsfunc = func;
return this;
}
public IDbFirst Where(params string[] objectNames)
{
if (objectNames.HasValue())
@ -235,7 +243,7 @@ namespace SqlSugar
classText = classText.Replace(DbFirstTemplate.KeySugarTable, IsAttribute ? string.Format(DbFirstTemplate.ValueSugarTable, tableInfo.Name) : null);
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 index = columns.IndexOf(item);

View File

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

View File

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