From 77b3455b3612b3b80fafcb0771680cc8272d573b Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Tue, 17 Dec 2024 13:58:58 +0800 Subject: [PATCH] Update query filter --- .../Abstract/SqlBuilderProvider/QueryBuilder.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs index 83414cd78..9002bca3d 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs @@ -460,7 +460,7 @@ namespace SqlSugar if (isSameName||ChildType.IsInterface) { var mysql = GetSql(exp, isSingle); - if (ChildType.IsInterface) + if (ChildType.IsInterface&&item.IsJoinQuery==true) { foreach (var joinInfoItem in this.JoinQueryInfos.Where(it => it.EntityType.GetInterfaces().Any(z=>z==ChildType))) { @@ -469,6 +469,15 @@ namespace SqlSugar joinInfoItem.JoinWhere += (" AND " + Regex.Replace(addSql, "^ (WHERE|AND) ", "")); } } + else if (ChildType.IsInterface && item.IsJoinQuery == false) + { + foreach (var joinInfoItem in this.JoinQueryInfos.Where(it => it.EntityType.GetInterfaces().Any(z => z == ChildType))) + { + var addSql = mysql.Replace(itName, this.Builder.GetTranslationColumnName(joinInfoItem.ShortName) + "."); + addSql = ReplaceFilterColumnName(addSql, joinInfoItem.EntityType, joinInfoItem.ShortName); + this.WhereInfos.Add (" AND " + Regex.Replace(addSql, "^ (WHERE|AND) ", "")); + } + } else { foreach (var joinInfoItem in this.JoinQueryInfos.Where(it => it.TableName == entityInfo.DbTableName))