From 31d98190ed8338b3d1dd9738d26f13f77b578827 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Thu, 15 Jun 2023 19:56:27 +0800 Subject: [PATCH] Update db.QueryableByObject --- .../SqlServerTest/UnitTest/UQueryableByObject.cs | 12 ++++++++++++ .../Abstract/QueryableProvider/QueryMethodInfo.cs | 14 ++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/UQueryableByObject.cs b/Src/Asp.Net/SqlServerTest/UnitTest/UQueryableByObject.cs index 6e4becebc..3db44e382 100644 --- a/Src/Asp.Net/SqlServerTest/UnitTest/UQueryableByObject.cs +++ b/Src/Asp.Net/SqlServerTest/UnitTest/UQueryableByObject.cs @@ -65,10 +65,22 @@ namespace OrmTest var whereFunc = ObjectFuncModel.Create("Format", "o.id", ">", "{int}:1", "&&", "o.name", "=", "{string}:a"); + + var data661 = db.Queryable().AS("[order]", "o") + .AddJoinInfo("order", "y", "o.id=y.id", SqlSugar.JoinType.Left) + .Where(whereFunc) + .GroupBy(groupList).Having(having).Select(selector).ToList(); var data66 = db.QueryableByObject(type, "o") .AddJoinInfo(typeof(Custom), "y", "o.id=y.id", SqlSugar.JoinType.Left) .Where(whereFunc) .GroupBy(groupList).Having(having).Select(selector).ToList(); + + var data67 = db.QueryableByObject(type, "o") + .AddJoinInfo("order", "y", ObjectFuncModel.Create("Equals", "y.id", "o.id"), SqlSugar.JoinType.Left) + .Where(whereFunc) + .GroupBy(groupList).Having(having).Select(selector).ToList(); + + } } } diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryMethodInfo.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryMethodInfo.cs index fb75511ff..5ecec5fc4 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryMethodInfo.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryMethodInfo.cs @@ -50,6 +50,20 @@ namespace SqlSugar this.QueryableObj = method.Invoke(QueryableObj, new object[] { tableName,shortName,onWhere,type }); return this; } + public QueryMethodInfo AddJoinInfo(string tableName, string shortName, IFuncModel onFunc, JoinType type = JoinType.Left) + { + var method = QueryableObj.GetType().GetMyMethod("AddJoinInfo", 4, typeof(string), typeof(string), typeof(string), typeof(JoinType)); + this.QueryableObj = method.Invoke(QueryableObj, new object[] { tableName, shortName, onFunc, type }); + return this; + } + public QueryMethodInfo AddJoinInfo(List joinInfoParameters) + { + foreach (var item in joinInfoParameters) + { + AddJoinInfo(item.TableName,item.ShortName,item.Models,item.Type); + } + return this; + } public QueryMethodInfo AddJoinInfo(Type joinEntityType, string shortName, string onWhere, JoinType type = JoinType.Left) { var method = QueryableObj.GetType().GetMyMethod("AddJoinInfo", 4, typeof(string), typeof(string), typeof(string), typeof(JoinType));