diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/EntityMaintenance/EntityMaintenance.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/EntityMaintenance/EntityMaintenance.cs index f74608a3f..eb34486b5 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/EntityMaintenance/EntityMaintenance.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/EntityMaintenance/EntityMaintenance.cs @@ -220,6 +220,12 @@ namespace SqlSugar EntityColumnInfo column = new EntityColumnInfo(); //var isVirtual = property.GetGetMethod().IsVirtual; //if (isVirtual) continue; + var navigat=property.GetCustomAttribute(typeof(Navigat)); + if (navigat != null) + { + column.IsIgnore = true; + column.Navigat = navigat as Navigat; + } var sugarColumn = property.GetCustomAttributes(typeof(SugarColumn), true) .Where(it => it is SugarColumn) .Select(it => (SugarColumn)it) diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/Includes.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/Includes.cs new file mode 100644 index 000000000..6c32d2d2b --- /dev/null +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/Includes.cs @@ -0,0 +1,270 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Text; +using System.Threading.Tasks; + +namespace SqlSugar +{ + public partial class QueryableProvider : QueryableAccessory, ISugarQueryable + { + public ISugarQueryable Includes(Expression>> include1) { _Includes(this.Context, include1); return this; } + public ISugarQueryable Includes(Expression> include1) { _Includes(this.Context, include1); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2) { _Includes(this.Context, include1, include2); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2) { _Includes(this.Context, include1, include2); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2) { _Includes(this.Context, include1, include2); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2) { _Includes(this.Context, include1, include2); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3) { _Includes(this.Context, include1, include2, include3); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3) { _Includes(this.Context, include1, include2, include3); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3) { _Includes(this.Context, include1, include2, include3); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3) { _Includes(this.Context, include1, include2, include3); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3) { _Includes(this.Context, include1, include2, include3); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3) { _Includes(this.Context, include1, include2, include3); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3) { _Includes(this.Context, include1, include2, include3); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3) { _Includes(this.Context, include1, include2, include3); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4) { _Includes(this.Context, include1, include2, include3, include4); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5) { _Includes(this.Context, include1, include2, include3, include4, include5); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6) { _Includes(this.Context, include1, include2, include3, include4, include5, include6); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression>> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + public ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7) { _Includes(this.Context, include1, include2, include3, include4, include5, include6, include7); return this; } + + + } +} + diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/Includes.txt b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/Includes.txt new file mode 100644 index 000000000..4f50f7fa9 --- /dev/null +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/Includes.txt @@ -0,0 +1,105 @@ + +List sourceNumbers = new List { 2, 4, 8, 16, 32, 64, 128 }; +var ram = new Random(); +foreach (var source in sourceNumbers) +{ + var index = sourceNumbers.IndexOf(source) + 1; + //Console.WriteLine("index=" + index); + + List> result = new List>(); + + string sb = ""; + List sb2 = new List(); + for (int i = 1; i <= source; i++) + { + + List test = new List(); + + List test2 = new List(); + for (int j = 1; j <= index; j++) + { + + test2.Add(new Test() { i = j, b = ram.Next(1, 222) % 2 == 0 }); + sb += $"[{test2.Last().b}:{test2.Last().i}]"; + //sb2 += $"[{test2.Last().b}:{test2.Last().i}]"; + if (j == index) + { + if (sb2.Count > 0 && sb2.Contains(sb)) + { + j = 0; + sb = ""; + test2 = new List(); + } + else + { + test.AddRange(test2.Select(x => new Test { b = x.b, i = x.i })); + sb2.Add(sb); + sb = ""; + } + } + + } + + test = test.OrderBy(it => it.i).ToList(); + result.Add(test); + + } + foreach (var test in result) + { + List res = new List(); + List res2 = new List(); + List res3 = new List(); + foreach (var item in test) + { + res3.Add($"include{ item.i}"); + if (item.i == 1) + { + if (item.b == false) + { + res.Add($"Expression>> include{item.i}"); + } + else + { + res.Add($"Expression> include{item.i}"); + } + + } + else + { + if (item.b == false) + { + res.Add($"Expression>> include{item.i}"); + } + else + { + res.Add($"Expression> include{item.i}"); + } + } + res2.Add("TReturn" + (item.i)); + } + + Console.WriteLine($"public ISugarQueryable Includes<{string.Join(",", res2)}>({string.Join(",", res)}){{ _Includes(this.Context,{string.Join(",", res3)}); return this; }}"); + } + //Console.WriteLine("--"); +} + +Console.ReadKey(); + +public class Test +{ + public bool b { get; set; } + public int i { get; set; } +} + + +//1:1 true + +//2: +// 1 true , 2 true +// 1 false , 2 true + +//3: +// 1 true , 2 true 3 true +// 1 true , 2 false 3 true +// 1 false , 2 false 3 true +// 1 false , 2 true 3 true diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/IncludesHelper.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/IncludesHelper.cs new file mode 100644 index 000000000..405227454 --- /dev/null +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/IncludesHelper.cs @@ -0,0 +1,125 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Text; +using System.Threading.Tasks; + +namespace SqlSugar +{ + public partial class QueryableProvider : QueryableAccessory, ISugarQueryable + { + private void _Includes(SqlSugarProvider context, params Expression[] expressions) + { + Func,List> SelectR1 = it => it.Select().ToList().Select(x=>x as object).ToList(); + var navigat = new NavigatManager(); + navigat.SelectR1 = SelectR1; + navigat.Expressions = expressions; + navigat.Context = this.Context; + if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); + this.QueryBuilder.Includes.Add(navigat); + } + private void _Includes(SqlSugarProvider context, params Expression[] expressions) + { + Func, List> SelectR1 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR2 = it => it.Select().ToList().Select(x => x as object).ToList(); + var navigat = new NavigatManager(); + navigat.SelectR1 = SelectR1; + navigat.SelectR2 = SelectR2; + navigat.Expressions = expressions; + navigat.Context = this.Context; + if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); + this.QueryBuilder.Includes.Add(navigat); + } + private void _Includes(SqlSugarProvider context, params Expression[] expressions) + { + Func, List> SelectR1 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR2 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR3 = it => it.Select().ToList().Select(x => x as object).ToList(); + var navigat = new NavigatManager(); + navigat.SelectR1 = SelectR1; + navigat.SelectR2 = SelectR2; + navigat.SelectR3 = SelectR3; + navigat.Expressions = expressions; + navigat.Context = this.Context; + if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); + this.QueryBuilder.Includes.Add(navigat); + } + private void _Includes(SqlSugarProvider context, params Expression[] expressions) + { + Func, List> SelectR1 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR2 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR3 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR4 = it => it.Select().ToList().Select(x => x as object).ToList(); + var navigat = new NavigatManager(); + navigat.SelectR1 = SelectR1; + navigat.SelectR2 = SelectR2; + navigat.SelectR3 = SelectR3; + navigat.SelectR4 = SelectR4; + navigat.Expressions = expressions; + navigat.Context = this.Context; + if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); + this.QueryBuilder.Includes.Add(navigat); + } + private void _Includes(SqlSugarProvider context, params Expression[] expressions) + { + Func, List> SelectR1 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR2 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR3 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR4 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR5 = it => it.Select().ToList().Select(x => x as object).ToList(); + var navigat = new NavigatManager(); + navigat.SelectR1 = SelectR1; + navigat.SelectR2 = SelectR2; + navigat.SelectR3 = SelectR3; + navigat.SelectR4 = SelectR4; + navigat.SelectR5 = SelectR5; + navigat.Expressions = expressions; + navigat.Context = this.Context; + if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); + this.QueryBuilder.Includes.Add(navigat); + } + private void _Includes(SqlSugarProvider context, params Expression[] expressions) + { + Func, List> SelectR1 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR2 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR3 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR4 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR5 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR6 = it => it.Select().ToList().Select(x => x as object).ToList(); + var navigat = new NavigatManager(); + navigat.SelectR1 = SelectR1; + navigat.SelectR2 = SelectR2; + navigat.SelectR3 = SelectR3; + navigat.SelectR4 = SelectR4; + navigat.SelectR5 = SelectR5; + navigat.SelectR6 = SelectR6; + navigat.Expressions = expressions; + navigat.Context = this.Context; + if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); + this.QueryBuilder.Includes.Add(navigat); + } + private void _Includes(SqlSugarProvider context, params Expression[] expressions) + { + Func, List> SelectR1 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR2 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR3 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR4 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR5 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR6 = it => it.Select().ToList().Select(x => x as object).ToList(); + Func, List> SelectR7 = it => it.Select().ToList().Select(x => x as object).ToList(); + var navigat = new NavigatManager(); + navigat.SelectR1 = SelectR1; + navigat.SelectR2 = SelectR2; + navigat.SelectR3 = SelectR3; + navigat.SelectR4 = SelectR4; + navigat.SelectR5 = SelectR5; + navigat.SelectR6 = SelectR6; + navigat.SelectR7 = SelectR7; + navigat.Expressions = expressions; + navigat.Context = this.Context; + if (this.QueryBuilder.Includes == null) this.QueryBuilder.Includes = new List(); + this.QueryBuilder.Includes.Add(navigat); + } + } +} diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs new file mode 100644 index 000000000..2b7406195 --- /dev/null +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs @@ -0,0 +1,243 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Text; +using System.Threading.Tasks; + +namespace SqlSugar +{ + public class NavigatManager + { + public SqlSugarProvider Context { get; set; } + public Func, List> SelectR1 { get; set; } + public Func, List> SelectR2 { get; set; } + public Func, List> SelectR3 { get; set; } + public Func, List> SelectR4 { get; set; } + public Func, List> SelectR5 { get; set; } + public Func, List> SelectR6 { get; set; } + public Func, List> SelectR7 { get; set; } + public Func, List> SelectR8 { get; set; } + public Expression[] Expressions { get; set; } + public List RootList { get; set; } + //public QueryableProvider Queryable { get; set; } + + private List _preExpressionList = new List(); + private List _preList = new List(); + //private Expression[] _expressions; + //private List _list; + //private EntityInfo _entityInfo; + public void Execute() + { + var i = 1; + foreach (var item in Expressions) + { + ExecuteByLay(i, item); + i++; + } + } + + private void ExecuteByLay(int i, Expression item) + { + + if (i == 1) + { + ExecuteByLay(item, RootList.Select(it => it as object).ToList(), SelectR1); + } + else if (i == 2) + { + var currentList = RootList; + if (RootList == null || currentList.Count == 0) return; + var memberExpression = ((_preExpressionList.Last() as LambdaExpression).Body as MemberExpression); + var navObjectName = memberExpression.Member.Name; + var navType = currentList[0].GetType().GetProperty(navObjectName).PropertyType.Name; + var isList = navType.StartsWith("List`"); + List list = new List(); + if (isList) + { + list = currentList.SelectMany(it => (it.GetType().GetProperty(navObjectName).GetValue(it) as IList).Cast()).ToList(); + + } + else + { + list = currentList.Select(it => (it.GetType().GetProperty(navObjectName).GetValue(it))).ToList(); + } + ExecuteByLay(item, list, SelectR2); + _preList = list; + } + else if (i == 3) + { + var currentList = _preList.Where(it => it != null).ToList(); + if (RootList == null || currentList.Count == 0) return; + var memberExpression = ((_preExpressionList.Last() as LambdaExpression).Body as MemberExpression); + var navObjectName = memberExpression.Member.Name; + var navType = currentList[0].GetType().GetProperty(navObjectName).PropertyType.Name; + var isList = navType.StartsWith("List`"); + List list = new List(); + if (isList) + { + list = currentList.SelectMany(it => (it.GetType().GetProperty(navObjectName).GetValue(it) as IList).Cast()).ToList(); + + } + else + { + list = currentList.Select(it => (it.GetType().GetProperty(navObjectName).GetValue(it))).ToList(); + } + ExecuteByLay(item, list, SelectR3); + _preList = list.ToList(); + } + _preExpressionList.Add(item); + } + + private void ExecuteByLay(Expression expression, List list, Func, List> selector) + { + if (list == null || list.Count == 0) return; + list = list.Where(it => it != null).ToList(); + var memberExpression = ((expression as LambdaExpression).Body as MemberExpression); + + var listItemType = list.Where(it=>it!=null).FirstOrDefault()?.GetType(); + if (listItemType.Name.StartsWith("List`")) + { + listItemType = listItemType.GetGenericArguments()[0]; + } + if (listItemType == null) return; + + var listItemEntity = this.Context.EntityMaintenance.GetEntityInfo(listItemType); + var listPkColumn = listItemEntity.Columns.Where(it => it.IsPrimarykey).FirstOrDefault(); + var navObjectName = memberExpression.Member.Name; + var navObjectNamePropety = listItemType.GetProperty(navObjectName); + var navObjectNameColumnInfo = listItemEntity.Columns.First(it => it.PropertyName == navObjectName); + Check.ExceptionEasy(navObjectNameColumnInfo.Navigat == null, $"{navObjectName} not [Navigat(..)] ", $"{navObjectName} 没有导航特性 [Navigat(..)] "); + + + + if (navObjectNameColumnInfo.Navigat.NavigatType == NavigatType.OneToOne) + { + OneToOne(list, selector, listItemEntity, navObjectNamePropety, navObjectNameColumnInfo); + } + else if (navObjectNameColumnInfo.Navigat.NavigatType == NavigatType.OneToMany) + { + OneToMany(list, selector, listItemEntity, navObjectNamePropety, navObjectNameColumnInfo); + } + else if (navObjectNameColumnInfo.Navigat.NavigatType == NavigatType.ManyToOne) + { + OneToOne(list, selector, listItemEntity, navObjectNamePropety, navObjectNameColumnInfo); + } + else + { + ManyToMany(list, selector, listItemEntity, navObjectNamePropety, navObjectNameColumnInfo); + } + } + + private void ManyToMany(List list, Func, List> selector, EntityInfo listItemEntity, System.Reflection.PropertyInfo navObjectNamePropety, EntityColumnInfo navObjectNameColumnInfo) + { + var bEntity = navObjectNameColumnInfo.PropertyInfo.PropertyType.GetGenericArguments()[0]; + var bEntityInfo = this.Context.EntityMaintenance.GetEntityInfo(bEntity); + var bPkColumn = bEntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey); + + var listItemPkColumn = listItemEntity.Columns.Where(it => it.IsPrimarykey).FirstOrDefault(); + var ids = list.Select(it => it.GetType().GetProperty(listItemPkColumn.PropertyName).GetValue(it)).Select(it => it == null ? "null" : it).Distinct().ToList(); + var mappingEntity = this.Context.EntityMaintenance.GetEntityInfo(navObjectNameColumnInfo.Navigat.MappingType); + var aColumn = mappingEntity.Columns.First(it => it.PropertyName == navObjectNameColumnInfo.Navigat.MappingAId); + var bColumn = mappingEntity.Columns.First(it => it.PropertyName == navObjectNameColumnInfo.Navigat.MappingBId); + List conditionalModels = new List(); + conditionalModels.Add((new ConditionalModel() + { + ConditionalType = ConditionalType.In, + FieldName = aColumn.DbColumnName, + FieldValue = String.Join(",", ids), + CSharpTypeName = aColumn.PropertyInfo.PropertyType.Name + })); + var abids = this.Context.Queryable().AS(mappingEntity.DbTableName).Where(conditionalModels).Select($"{aColumn.DbColumnName} as aid,{bColumn.DbColumnName} as bid").ToList(); + + List conditionalModels2 = new List(); + conditionalModels2.Add((new ConditionalModel() + { + ConditionalType = ConditionalType.In, + FieldName = bPkColumn.DbColumnName, + FieldValue = String.Join(",", abids.Select(it => it.Bid).ToArray()), + CSharpTypeName = bColumn.PropertyInfo.PropertyType.Name + })); + var bList = selector(this.Context.Queryable().AS(bEntityInfo.DbTableName).Where(conditionalModels2)); + if (bList.HasValue()) + { + foreach (var listItem in list) + { + + var instance = Activator.CreateInstance(navObjectNamePropety.PropertyType, true); + var ilist = instance as IList; + foreach (var bInfo in bList) + { + var pk = listItemPkColumn.PropertyInfo.GetValue(listItem).ObjToString(); + var bid = bPkColumn.PropertyInfo.GetValue(bInfo).ObjToString(); + if (abids.Any(x => x.Aid == pk&& x.Bid== bid)) + { + ilist.Add(bInfo); + } + } + navObjectNamePropety.SetValue(listItem, instance); + } + } + } + + private void OneToOne(List list, Func, List> selector, EntityInfo listItemEntity, System.Reflection.PropertyInfo navObjectNamePropety, EntityColumnInfo navObjectNameColumnInfo) + { + var navColumn = listItemEntity.Columns.FirstOrDefault(it => it.PropertyName == navObjectNameColumnInfo.Navigat.Name); + var navType = navObjectNamePropety.PropertyType; + var navEntityInfo = this.Context.EntityMaintenance.GetEntityInfo(navType); + var navPkColumn = navEntityInfo.Columns.Where(it => it.IsPrimarykey).FirstOrDefault(); + + var ids = list.Select(it => it.GetType().GetProperty(navObjectNameColumnInfo.Navigat.Name).GetValue(it)).Select(it => it == null ? "null" : it).Distinct().ToList(); + List conditionalModels = new List(); + conditionalModels.Add((new ConditionalModel() + { + ConditionalType = ConditionalType.In, + FieldName = navPkColumn.DbColumnName, + FieldValue = String.Join(",", ids), + CSharpTypeName = navObjectNameColumnInfo.PropertyInfo.PropertyType.Name + })); + var navList = selector(this.Context.Queryable().AS(navEntityInfo.DbTableName).Where(conditionalModels)); + foreach (var item in list) + { + var setValue = navList.FirstOrDefault(x => navPkColumn.PropertyInfo.GetValue(x).ObjToString() == navColumn.PropertyInfo.GetValue(item).ObjToString()); + navObjectNamePropety.SetValue(item, setValue); + } + } + + private void OneToMany(List list, Func, List> selector, EntityInfo listItemEntity, System.Reflection.PropertyInfo navObjectNamePropety, EntityColumnInfo navObjectNameColumnInfo) + { + var navEntity = navObjectNameColumnInfo.PropertyInfo.PropertyType.GetGenericArguments()[0]; + var navEntityInfo = this.Context.EntityMaintenance.GetEntityInfo(navEntity); + var navColumn = navEntityInfo.Columns.FirstOrDefault(it => it.PropertyName == navObjectNameColumnInfo.Navigat.Name); + //var navType = navObjectNamePropety.PropertyType; + var listItemPkColumn = listItemEntity.Columns.Where(it => it.IsPrimarykey).FirstOrDefault(); + + var ids = list.Select(it => it.GetType().GetProperty(listItemPkColumn.PropertyName).GetValue(it)).Select(it => it == null ? "null" : it).Distinct().ToList(); + List conditionalModels = new List(); + conditionalModels.Add((new ConditionalModel() + { + ConditionalType = ConditionalType.In, + FieldName = navObjectNameColumnInfo.Navigat.Name, + FieldValue = String.Join(",", ids), + CSharpTypeName = listItemPkColumn.PropertyInfo.PropertyType.Name + })); + var navList = selector(this.Context.Queryable().AS(navEntityInfo.DbTableName).Where(conditionalModels)); + if (navList.HasValue()) + { + foreach (var item in list) + { + var setValue = navList + .Where(x => navColumn.PropertyInfo.GetValue(x).ObjToString() == listItemPkColumn.PropertyInfo.GetValue(item).ObjToString()).ToList(); + var instance = Activator.CreateInstance(navObjectNamePropety.PropertyType, true); + var ilist = instance as IList; + foreach (var value in setValue) + { + ilist.Add(value); + } + navObjectNamePropety.SetValue(item, instance); + } + } + } + } +} diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index 0684bcee8..78410deaf 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -2207,8 +2207,24 @@ namespace SqlSugar } RestoreMapping(); _Mapper(result); + _InitNavigat(result); return result; } + + private void _InitNavigat(List result) + { + if (this.QueryBuilder.Includes != null) + { + var managers=(this.QueryBuilder.Includes as List); + foreach (var it in managers) + { + var manager = it as NavigatManager; + manager.RootList = result; + manager.Execute(); + } + } + } + protected async Task> _ToListAsync() { List result = null; diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs index 7fb323867..fe00cd9c4 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs @@ -33,6 +33,7 @@ namespace SqlSugar #endregion #region Splicing basic + public List Includes { get; set; } public List IgnoreColumns { get; set; } public bool IsCount { get; set; } public bool IsSqlQuery { get; set; } diff --git a/Src/Asp.NetCore2/SqlSugar/Entities/EntityColumnInfo.cs b/Src/Asp.NetCore2/SqlSugar/Entities/EntityColumnInfo.cs index 6918f5dc7..ac3b22c74 100644 --- a/Src/Asp.NetCore2/SqlSugar/Entities/EntityColumnInfo.cs +++ b/Src/Asp.NetCore2/SqlSugar/Entities/EntityColumnInfo.cs @@ -36,5 +36,6 @@ namespace SqlSugar public string[] UIndexGroupNameList { get; set; } public bool IsArray { get; set; } public Type UnderType { get; set; } + public Navigat Navigat { get; set; } } } diff --git a/Src/Asp.NetCore2/SqlSugar/Entities/Mapping/SugarMappingAttribute.cs b/Src/Asp.NetCore2/SqlSugar/Entities/Mapping/SugarMappingAttribute.cs index e73ed227c..7d920930b 100644 --- a/Src/Asp.NetCore2/SqlSugar/Entities/Mapping/SugarMappingAttribute.cs +++ b/Src/Asp.NetCore2/SqlSugar/Entities/Mapping/SugarMappingAttribute.cs @@ -203,4 +203,25 @@ namespace SqlSugar } } + [AttributeUsage(AttributeTargets.Property, Inherited = true)] + public class Navigat: Attribute + { + public string Name { get; set; } + public Type MappingType { get; set; } + public string MappingAId { get; set; } + public string MappingBId { get; set; } + public NavigatType NavigatType { get; set; } + public Navigat(NavigatType navigatType,string name) + { + this.Name = name; + this.NavigatType = navigatType; + } + public Navigat(Type MappingTableType,string typeAiD,string typeBId) + { + this.MappingType = MappingTableType; + this.MappingAId = typeAiD; + this.MappingBId = typeBId; + } + } + } diff --git a/Src/Asp.NetCore2/SqlSugar/Entities/SugarAbMapping.cs b/Src/Asp.NetCore2/SqlSugar/Entities/SugarAbMapping.cs new file mode 100644 index 000000000..cc1df0138 --- /dev/null +++ b/Src/Asp.NetCore2/SqlSugar/Entities/SugarAbMapping.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SqlSugar +{ + public class SugarAbMapping + { + public string Aid { get; set; } + public string Bid { get; set; } + } +} diff --git a/Src/Asp.NetCore2/SqlSugar/Enum/NavigatType.cs b/Src/Asp.NetCore2/SqlSugar/Enum/NavigatType.cs new file mode 100644 index 000000000..039d20c49 --- /dev/null +++ b/Src/Asp.NetCore2/SqlSugar/Enum/NavigatType.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SqlSugar +{ + public enum NavigatType + { + OneToOne=1, + OneToMany=2, + ManyToOne=3, + ManyToMany=4, + } +} diff --git a/Src/Asp.NetCore2/SqlSugar/Interface/IIncludes.cs b/Src/Asp.NetCore2/SqlSugar/Interface/IIncludes.cs new file mode 100644 index 000000000..dc3babc55 --- /dev/null +++ b/Src/Asp.NetCore2/SqlSugar/Interface/IIncludes.cs @@ -0,0 +1,272 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Text; +using System.Threading.Tasks; + +namespace SqlSugar +{ + /// + /// Includes + /// + /// + public partial interface ISugarQueryable + { + ISugarQueryable Includes(Expression>> include1); + ISugarQueryable Includes(Expression> include1); + ISugarQueryable Includes(Expression>> include1, Expression>> include2); + ISugarQueryable Includes(Expression>> include1, Expression> include2); + ISugarQueryable Includes(Expression> include1, Expression> include2); + ISugarQueryable Includes(Expression> include1, Expression>> include2); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression> include3, Expression> include4, Expression>> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression> include3, Expression>> include4, Expression> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression>> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression>> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression> include4, Expression>> include5, Expression> include6, Expression>> include7); + ISugarQueryable Includes(Expression>> include1, Expression> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression>> include1, Expression>> include2, Expression>> include3, Expression> include4, Expression> include5, Expression> include6, Expression> include7); + ISugarQueryable Includes(Expression> include1, Expression>> include2, Expression>> include3, Expression>> include4, Expression> include5, Expression>> include6, Expression> include7); + + } +} diff --git a/Src/Asp.NetCore2/SqlSugar/Interface/IIncludes.txt b/Src/Asp.NetCore2/SqlSugar/Interface/IIncludes.txt new file mode 100644 index 000000000..df013e689 --- /dev/null +++ b/Src/Asp.NetCore2/SqlSugar/Interface/IIncludes.txt @@ -0,0 +1,106 @@ + +List sourceNumbers = new List { 2, 4, 8, 16, 32, 64, 128 }; +var ram = new Random(); +foreach (var source in sourceNumbers) +{ + var index = sourceNumbers.IndexOf(source) + 1; + //Console.WriteLine("index=" + index); + + List> result = new List>(); + + string sb = ""; + List sb2 = new List(); + for (int i = 1; i <= source; i++) + { + + List test = new List(); + + List test2 = new List(); + for (int j = 1; j <= index; j++) + { + + test2.Add(new Test() { i = j, b = ram.Next(1, 222) % 2 == 0 }); + + + sb += $"[{test2.Last().b}:{test2.Last().i}]"; + //sb2 += $"[{test2.Last().b}:{test2.Last().i}]"; + if (j == index) + { + if (sb2.Count > 0 && sb2.Contains(sb)) + { + j = 0; + sb = ""; + test2 = new List(); + } + else + { + test.AddRange(test2.Select(x => new Test { b = x.b, i = x.i })); + sb2.Add(sb); + sb = ""; + } + } + + } + + test = test.OrderBy(it => it.i).ToList(); + result.Add(test); + + } + foreach (var test in result) + { + List res = new List(); + List res2 = new List(); + + foreach (var item in test) + { + if (item.i == 1) + { + if (item.b == false) + { + res.Add($"Expression>> include{item.i}"); + } + else + { + res.Add($"Expression> include{item.i}"); + } + + } + else + { + if (item.b == false) + { + res.Add($"Expression>> include{item.i}"); + } + else + { + res.Add($"Expression> include{item.i}"); + } + } + res2.Add("TReturn" + (item.i)); + } + + Console.WriteLine($"ISugarQueryable Includes<{string.Join(",", res2)}>({string.Join(",", res)});"); + } + //Console.WriteLine("--"); +} + +Console.ReadKey(); + +public class Test +{ + public bool b { get; set; } + public int i { get; set; } +} + + +//1:1 true + +//2: +// 1 true , 2 true +// 1 false , 2 true + +//3: +// 1 true , 2 true 3 true +// 1 true , 2 false 3 true +// 1 false , 2 false 3 true +// 1 false , 2 true 3 true