diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/UQueryable.cs b/Src/Asp.Net/SqlServerTest/UnitTest/UQueryable.cs index b7c9de71c..94331dabe 100644 --- a/Src/Asp.Net/SqlServerTest/UnitTest/UQueryable.cs +++ b/Src/Asp.Net/SqlServerTest/UnitTest/UQueryable.cs @@ -200,6 +200,13 @@ namespace OrmTest db.Insertable(new UnitEnumadfa()).ExecuteCommand(); db.Insertable(new UnitEnumadfa() { Type=DbType.Sqlite}).ExecuteCommand(); var listEnum=db.Queryable().ToList(); + + var d111111 = db.Queryable() + .Where(it => it.Id== SqlFunc.IF(true).Return(1).End(0) ) + .ToList(); + var d1111111 = db.Queryable() +.Where(it => it.Id == SqlFunc.IF(it.Id>0).Return(1).End(0)) +.ToList(); } diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/CaseWhen/CaseWhenResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/CaseWhen/CaseWhenResolve.cs index de7e7ad78..f26107e67 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/CaseWhen/CaseWhenResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/CaseWhen/CaseWhenResolve.cs @@ -55,6 +55,15 @@ namespace SqlSugar else { var sql = SubTools.GetMethodValue(this.context, methodExp.Arguments[0], this.context.IsSingle ? ResolveExpressType.WhereSingle : ResolveExpressType.WhereMultiple); + if (methodExp.Method.Name == "IF") + { + var parameter = this.context.Parameters.FirstOrDefault(it => it.ParameterName == sql.Trim()); + if (parameter!=null&¶meter.Value is bool) + { + sql = Convert.ToBoolean(parameter.Value) ? " 1=1 " : " 1=2 "; + this.context.Parameters.Remove(parameter); + } + } sqls.Add(new KeyValuePair(methodExp.Method.Name, sql)); } }