From 675a10cdebb85ab6d41edbe581fd56e8f08aea21 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sat, 23 Jul 2022 15:10:21 +0800 Subject: [PATCH] Update .net core project --- .../ResolveItems/OneToManyNavgateExpression.cs | 17 ++++++++++++++++- .../SqlSugar/Utilities/CommonExtensions.cs | 4 ++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/OneToManyNavgateExpression.cs b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/OneToManyNavgateExpression.cs index aa1262d13..3d21eade7 100644 --- a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/OneToManyNavgateExpression.cs +++ b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/OneToManyNavgateExpression.cs @@ -57,12 +57,27 @@ namespace SqlSugar private string GetWhereSql(MethodCallExpression memberExp) { var whereExp = memberExp.Arguments[1]; - if (PropertyShortName.HasValue()&& Navigat!=null&& Navigat.NavigatType==NavigateType.OneToMany) + if (PropertyShortName.HasValue() && Navigat != null && Navigat.NavigatType == NavigateType.OneToMany) { InitType(whereExp); var result = this.methodCallExpressionResolve.GetNewExpressionValue(whereExp, ResolveExpressType.WhereMultiple); return result; } + else if (whereExp!=null&&whereExp.Type == typeof(List)) + { + var value = ExpressionTool.GetExpressionValue(whereExp) as List; + //this.context.Utilities.Context.Queryable().Where(value).ToList(); + if (value.HasValue()) + { + var sqlObj = this.context.Queryable().SqlBuilder.ConditionalModelToSql(value, 0); + methodCallExpressionResolve.Context.Parameters.AddRange(sqlObj.Value); + return sqlObj.Key; + } + else + { + return " 1=1 "; + } + } else { InitType(whereExp); diff --git a/Src/Asp.NetCore2/SqlSugar/Utilities/CommonExtensions.cs b/Src/Asp.NetCore2/SqlSugar/Utilities/CommonExtensions.cs index 42dbc0373..b637a8b38 100644 --- a/Src/Asp.NetCore2/SqlSugar/Utilities/CommonExtensions.cs +++ b/Src/Asp.NetCore2/SqlSugar/Utilities/CommonExtensions.cs @@ -28,5 +28,9 @@ namespace SqlSugar { return new List() { thisValue }; } + public static bool Any(this IEnumerable thisValue, IEnumerable conditionalModels) + { + throw new Exception("Can only be used in expressions"); + } } }