diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ExpressionContext.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ExpressionContext.cs index 37708258e..89786c712 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ExpressionContext.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ExpressionContext.cs @@ -16,10 +16,25 @@ namespace SqlSugar { #region Fields private bool _IsSingle = true; + private IDbMethods _DbMehtods { get; set; } #endregion #region properties - public IDbMethods DbMehtods { get; set; } + public IDbMethods DbMehtods + { + get + { + if (_DbMehtods == null) + { + _DbMehtods = new DefaultDbMethod(); + } + return _DbMehtods; + } + set + { + _DbMehtods = value; + } + } public int Index { get; set; } public int ParameterIndex { get; set; } public MappingColumnList MappingColumns { get; set; } diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Method/DefaultDbMethod.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Method/DefaultDbMethod.cs index 676a10fbc..a2e12a61d 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Method/DefaultDbMethod.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Method/DefaultDbMethod.cs @@ -6,7 +6,7 @@ using System.Text; using System.Threading.Tasks; namespace SqlSugar { - public abstract partial class DefaultDbMethod : IDbMethods + public partial class DefaultDbMethod : IDbMethods { public virtual string IIF(MethodCallExpressionModel model) { @@ -260,5 +260,15 @@ namespace SqlSugar var parameter1 = model.Args[1]; return string.Format("{0}", parameter1.MemberValue); } + + public virtual string True() + { + return "( 1 = 1 ) "; + } + + public virtual string False() + { + return "( 1 = 2 ) "; + } } } diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Method/IDbMethods.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Method/IDbMethods.cs index 394da7101..c91dc1a0e 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Method/IDbMethods.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Method/IDbMethods.cs @@ -47,5 +47,7 @@ namespace SqlSugar string AggregateMax(MethodCallExpressionModel model); string AggregateCount(MethodCallExpressionModel model); string MappingColumn(MethodCallExpressionModel model); + string True(); + string False(); } } diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/ConstantExpressionResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/ConstantExpressionResolve.cs index 1bda1f732..82ac23e5b 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/ConstantExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/ConstantExpressionResolve.cs @@ -35,7 +35,7 @@ namespace SqlSugar var parentIsRoot = parameter.BaseParameter.CurrentExpression is LambdaExpression; if (parentIsRoot && value != null && value.GetType() == PubConst.BoolType) { - this.Context.Result.Append(value.ObjToBool() ? "( 1 = 1 ) " : "( 1 = 2 ) "); + this.Context.Result.Append(value.ObjToBool() ? this.Context.DbMehtods.True() :this.Context.DbMehtods.False()); break; } if (parentIsBinary && value != null && value.GetType() == PubConst.BoolType && parameter.BaseExpression != null) @@ -47,7 +47,7 @@ namespace SqlSugar parameter.BaseExpression.NodeType == ExpressionType.OrElse; if (isLogicOperator) { - AppendMember(parameter, isLeft, (value.ObjToBool() ? "( 1 = 1 ) " : "( 1 = 2 ) ")); + AppendMember(parameter, isLeft, (value.ObjToBool() ? this.Context.DbMehtods.True(): this.Context.DbMehtods.False())); break; } }