diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/IncludesHelper.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/IncludesHelper.cs index e3318c9e7..b21626bb1 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/IncludesHelper.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/IncludesHelper.cs @@ -18,6 +18,7 @@ namespace SqlSugar navigat.Context = this.Context; navigat.IsCrossQueryWithAttr = this.QueryBuilder.IsCrossQueryWithAttr; navigat.CrossQueryItems = this.QueryBuilder.CrossQueryItems; + navigat.QueryBuilder = this.QueryBuilder; if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); this.QueryBuilder.Includes.Add(navigat); } @@ -32,6 +33,7 @@ namespace SqlSugar navigat.CrossQueryItems = this.QueryBuilder.CrossQueryItems; navigat.Expressions = expressions; navigat.Context = this.Context; + navigat.QueryBuilder = this.QueryBuilder; if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); this.QueryBuilder.Includes.Add(navigat); } @@ -48,6 +50,7 @@ namespace SqlSugar navigat.CrossQueryItems = this.QueryBuilder.CrossQueryItems; navigat.Expressions = expressions; navigat.Context = this.Context; + navigat.QueryBuilder = this.QueryBuilder; if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); this.QueryBuilder.Includes.Add(navigat); } @@ -66,6 +69,7 @@ namespace SqlSugar navigat.IsCrossQueryWithAttr = this.QueryBuilder.IsCrossQueryWithAttr; navigat.CrossQueryItems = this.QueryBuilder.CrossQueryItems; navigat.Context = this.Context; + navigat.QueryBuilder = this.QueryBuilder; if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); this.QueryBuilder.Includes.Add(navigat); } @@ -86,6 +90,7 @@ namespace SqlSugar navigat.IsCrossQueryWithAttr = this.QueryBuilder.IsCrossQueryWithAttr; navigat.CrossQueryItems = this.QueryBuilder.CrossQueryItems; navigat.Context = this.Context; + navigat.QueryBuilder = this.QueryBuilder; if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); this.QueryBuilder.Includes.Add(navigat); } @@ -115,6 +120,7 @@ namespace SqlSugar navigat.Context = this.Context; navigat.IsCrossQueryWithAttr = this.QueryBuilder.IsCrossQueryWithAttr; navigat.CrossQueryItems = this.QueryBuilder.CrossQueryItems; + navigat.QueryBuilder = this.QueryBuilder; if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); this.QueryBuilder.Includes.Add(navigat); } @@ -129,6 +135,7 @@ namespace SqlSugar navigat.IsCrossQueryWithAttr = this.QueryBuilder.IsCrossQueryWithAttr; navigat.CrossQueryItems = this.QueryBuilder.CrossQueryItems; navigat.Context = this.Context; + navigat.QueryBuilder = this.QueryBuilder; if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); this.QueryBuilder.Includes.Add(navigat); } @@ -145,6 +152,7 @@ namespace SqlSugar navigat.IsCrossQueryWithAttr = this.QueryBuilder.IsCrossQueryWithAttr; navigat.CrossQueryItems = this.QueryBuilder.CrossQueryItems; navigat.Context = this.Context; + navigat.QueryBuilder = this.QueryBuilder; if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); this.QueryBuilder.Includes.Add(navigat); } @@ -163,6 +171,7 @@ namespace SqlSugar navigat.IsCrossQueryWithAttr = this.QueryBuilder.IsCrossQueryWithAttr; navigat.CrossQueryItems = this.QueryBuilder.CrossQueryItems; navigat.Context = this.Context; + navigat.QueryBuilder = this.QueryBuilder; if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); this.QueryBuilder.Includes.Add(navigat); } @@ -183,6 +192,7 @@ namespace SqlSugar navigat.IsCrossQueryWithAttr = this.QueryBuilder.IsCrossQueryWithAttr; navigat.CrossQueryItems = this.QueryBuilder.CrossQueryItems; navigat.Context = this.Context; + navigat.QueryBuilder = this.QueryBuilder; if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); this.QueryBuilder.Includes.Add(navigat); } @@ -205,6 +215,7 @@ namespace SqlSugar navigat.IsCrossQueryWithAttr = this.QueryBuilder.IsCrossQueryWithAttr; navigat.CrossQueryItems = this.QueryBuilder.CrossQueryItems; navigat.Context = this.Context; + navigat.QueryBuilder = this.QueryBuilder; if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); this.QueryBuilder.Includes.Add(navigat); } @@ -226,6 +237,7 @@ namespace SqlSugar navigat.SelectR6 = SelectR6; navigat.SelectR7 = SelectR7; navigat.Expressions = expressions; + navigat.QueryBuilder = this.QueryBuilder; navigat.IsCrossQueryWithAttr = this.QueryBuilder.IsCrossQueryWithAttr; navigat.CrossQueryItems = this.QueryBuilder.CrossQueryItems; navigat.Context = this.Context; diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs index 1090de805..886ef10ce 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs @@ -24,6 +24,8 @@ namespace SqlSugar public Func, List> SelectR8 { get; set; } public Expression[] Expressions { get; set; } public List RootList { get; set; } + public QueryBuilder QueryBuilder { get; set; } + //public QueryableProvider Queryable { get; set; } private List _preExpressionList = new List(); @@ -225,7 +227,7 @@ namespace SqlSugar var abDb = this.Context; abDb = GetCrossDatabase(abDb, mappingEntity.Type); var queryable = abDb.Queryable(); - var abids = queryable.AS(mappingEntity.DbTableName).Filter(mappingEntity.Type).Where(conditionalModels).Select($"{queryable.SqlBuilder.GetTranslationColumnName(aColumn.DbColumnName)} as aid,{queryable.SqlBuilder.GetTranslationColumnName(bColumn.DbColumnName)} as bid").ToList(); + var abids = queryable.AS(mappingEntity.DbTableName).Filter(this.QueryBuilder?.IsDisabledGobalFilter==true?null:mappingEntity.Type).Where(conditionalModels).Select($"{queryable.SqlBuilder.GetTranslationColumnName(aColumn.DbColumnName)} as aid,{queryable.SqlBuilder.GetTranslationColumnName(bColumn.DbColumnName)} as bid").ToList(); List conditionalModels2 = new List(); conditionalModels2.Add((new ConditionalModel() @@ -236,7 +238,7 @@ namespace SqlSugar CSharpTypeName = bColumn.PropertyInfo.PropertyType.Name })); var sql = GetWhereSql(); - var bList = selector(bDb.Queryable().AS(bEntityInfo.DbTableName).Filter(bEntityInfo.Type).AddParameters(sql.Parameters).Where(conditionalModels2).WhereIF(sql.WhereString.HasValue(),sql.WhereString).Select(sql.SelectString).OrderByIF(sql.OrderByString.HasValue(),sql.OrderByString)); + var bList = selector(bDb.Queryable().AS(bEntityInfo.DbTableName).Filter(this.QueryBuilder?.IsDisabledGobalFilter == true ? null : bEntityInfo.Type).AddParameters(sql.Parameters).Where(conditionalModels2).WhereIF(sql.WhereString.HasValue(),sql.WhereString).Select(sql.SelectString).OrderByIF(sql.OrderByString.HasValue(),sql.OrderByString)); if (bList.HasValue()) { foreach (var listItem in list) @@ -346,7 +348,7 @@ namespace SqlSugar if (list.Any()&&navObjectNamePropety.GetValue(list.First()) == null) { var sqlObj = GetWhereSql(navObjectNameColumnInfo.Navigat.Name); - var navList = selector(db.Queryable().Filter(navEntityInfo.Type).AS(navEntityInfo.DbTableName) + var navList = selector(db.Queryable().Filter(this.QueryBuilder?.IsDisabledGobalFilter == true ? null : navEntityInfo.Type).AS(navEntityInfo.DbTableName) .WhereIF(navObjectNameColumnInfo.Navigat.WhereSql.HasValue(), navObjectNameColumnInfo.Navigat.WhereSql) .WhereIF(sqlObj.WhereString.HasValue(),sqlObj.WhereString) .AddParameters(sqlObj.Parameters).Where(conditionalModels) @@ -412,7 +414,7 @@ namespace SqlSugar if (list.Any() && navObjectNamePropety.GetValue(list.First()) == null) { - var navList = selector(childDb.Queryable(sqlObj.TableShortName).AS(navEntityInfo.DbTableName).Filter(navEntityInfo.Type).AddParameters(sqlObj.Parameters).Where(conditionalModels).WhereIF(sqlObj.WhereString.HasValue(), sqlObj.WhereString).Select(sqlObj.SelectString).OrderByIF(sqlObj.OrderByString.HasValue(), sqlObj.OrderByString)); + var navList = selector(childDb.Queryable(sqlObj.TableShortName).AS(navEntityInfo.DbTableName).Filter(this.QueryBuilder?.IsDisabledGobalFilter == true ? null : navEntityInfo.Type).AddParameters(sqlObj.Parameters).Where(conditionalModels).WhereIF(sqlObj.WhereString.HasValue(), sqlObj.WhereString).Select(sqlObj.SelectString).OrderByIF(sqlObj.OrderByString.HasValue(), sqlObj.OrderByString)); if (navList.HasValue()) { //var setValue = navList