diff --git a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs index c14be7845..4a832d94a 100644 --- a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs +++ b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs @@ -428,6 +428,10 @@ namespace OrmTest.Demo var test33 = db.Queryable().Where(it => SqlFunc.IIF(it.Name==null,true ,false)).ToList(); var test34 = db.Queryable().Where(it => SqlFunc.IIF(it.Name == null||1==1, true, false)).ToList(); var test35 = db.Queryable().Where(it =>it.Id==1&&SqlFunc.IF(it.Id==1).Return(true).End(false)).ToList(); + var test36 = db.Queryable().Where(it => it.Id == 1 &&it.SchoolId.HasValue).ToList(); + var test37 = db.Queryable().Where(it => it.Id == 1 && SqlFunc.IIF(it.Id == 1, true, false)).ToList(); + var test38 = db.Queryable().Where(it => it.Id == 1 && SqlFunc.IIF(it.Id == 1, true, false)==true).ToList(); + var test39 = db.Queryable().Where(it => it.Id == 1 && (it.Id==1?true:false)).ToList(); } public static void Page() { diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs index 77ef534d0..cfe2fa124 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs @@ -269,6 +269,14 @@ namespace SqlSugar { methodValue = methodValue + "=1 "; } + if (parameter.BaseExpression != null&&ExpressionTool.IsLogicOperator(parameter.BaseExpression) && this.Context.ResolveType.IsIn(ResolveExpressType.WhereMultiple, ResolveExpressType.WhereSingle) && (parameter.CurrentExpression is ConditionalExpression) && ((parameter.CurrentExpression as ConditionalExpression).Type == UtilConstants.BoolType)) + { + methodValue = methodValue + "=1 "; + } + if (parameter.BaseExpression != null && ExpressionTool.IsLogicOperator(parameter.BaseExpression) && this.Context.ResolveType.IsIn(ResolveExpressType.WhereMultiple, ResolveExpressType.WhereSingle) && (parameter.CurrentExpression is MethodCallExpression) && ((parameter.CurrentExpression as MethodCallExpression).Method.Name.IsIn("IIF")) && (parameter.CurrentExpression as MethodCallExpression).Method.ReturnType == UtilConstants.BoolType) + { + methodValue = methodValue + "=1 "; + } base.AppendValue(parameter, isLeft, methodValue); }