From 767f150b627b4edd9e2061c6cd7d611a162f36ff Mon Sep 17 00:00:00 2001 From: sunkaixuna <610262374@qq.com> Date: Tue, 4 Jan 2022 13:12:10 +0800 Subject: [PATCH] Update core --- .../ExpressionsToSql/Subquery/Items/SubSelect.cs | 12 ++++++++++++ .../ExpressionsToSql/Subquery/Items/SubWhereIF.cs | 5 +++++ 2 files changed, 17 insertions(+) diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/Subquery/Items/SubSelect.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/Subquery/Items/SubSelect.cs index ac24cbfa3..f059f4ca1 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/Subquery/Items/SubSelect.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/Subquery/Items/SubSelect.cs @@ -72,5 +72,17 @@ namespace SqlSugar } } + public void SetShortNameNext(MethodCallExpression exp, string result) + { + if (exp.Arguments.Count>1&&exp.Arguments[1] is LambdaExpression && result.IsContainsIn("+", "-")) + { + var parameters = (exp.Arguments[1] as LambdaExpression).Parameters; + if (parameters != null && parameters.Count > 0) + { + this.Context.CurrentShortName = this.Context.SqlTranslationLeft + parameters[0] + this.Context.SqlTranslationRight; + } + + } + } } } diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/Subquery/Items/SubWhereIF.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/Subquery/Items/SubWhereIF.cs index 95dff686b..896fbd75d 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/Subquery/Items/SubWhereIF.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/Subquery/Items/SubWhereIF.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; +using System.Text.RegularExpressions; namespace SqlSugar { @@ -48,6 +49,10 @@ namespace SqlSugar { Check.Exception(true, ErrorMessage.WhereIFCheck,exp.Arguments[0].ToString()); } + if (Regex.Matches(expression.ToString(), "Subqueryable").Count >= 2) + { + new SubSelect() { Context = this.Context }.SetShortNameNext(exp, "+"); + } var isWhere= Convert.ToBoolean(value); if (!Convert.ToBoolean(isWhere)) { return "WHERE 1=1 ";