diff --git a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve_Item.cs b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve_Item.cs index 19cad43c8..1e71b63f4 100644 --- a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve_Item.cs +++ b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve_Item.cs @@ -69,6 +69,19 @@ namespace SqlSugar parameter.Context.Result.Append(this.Context.GetAsString2(asName, GetNewExpressionValue(childExpression))); return; } + else if (ExpressionTool.GetMethodName(item) == "IsNull" + && this.Context.SingleTableNameSubqueryShortName == null + && this.BaseParameter?.CurrentExpression is NewExpression + && item?.ToString()?.Contains("Join") == true + && ExpressionTool.GetParameters(this.BaseParameter?.CurrentExpression).Count() > 1) + { + var ps = ExpressionTool.GetParameters(this.BaseParameter?.CurrentExpression); + this.Expression = item; + this.Start(); + parameter.Context.Result.Append(this.Context.GetAsString2(asName, parameter.CommonTempData.ObjToString())); + this.Context.SingleTableNameSubqueryShortName = ps.FirstOrDefault().Name; + return; + } this.Expression = item; this.Start(); if (ExpressionTool.GetMethodName(item) == "MappingColumn")