From 03fc0cd9f89176e4bf2fba052bd029fbee274cae Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Mon, 15 Apr 2019 21:27:57 +0800 Subject: [PATCH] Update exp to sql --- Src/Asp.Net/SqlServerTest/Demos/1_Query.cs | 1 + .../ResolveItems/MethodCallExpressionResolve.cs | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs index dc4335ed8..1117c7d6d 100644 --- a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs +++ b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs @@ -451,6 +451,7 @@ namespace OrmTest.Demo var test49 = db.Queryable().Where(it => it.CreateTime != null).Where(it => SqlFunc.ToDate(it.CreateTime).Year == DateTime.Now.Year).ToList(); var test50 = db.Queryable().Where(it => it.CreateTime != null).Where(it => SqlFunc.ToDate(it.CreateTime).Year == SqlFunc.GetDate().Year).ToList(); var test51 = db.Queryable().Select(it=>new { x= SqlFunc.ToDate(it.CreateTime).Year+"-" }).ToList(); + var test52 = db.Queryable().Select(it => SqlFunc.IsNull(it.CreateTime, SqlFunc.GetDate())).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 09a8a31d3..435214d42 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs @@ -422,7 +422,13 @@ namespace SqlSugar methodCallExpressionArgs.IsMember = false; } } - if (methodCallExpressionArgs.IsMember == false) + if (methodCallExpressionArgs.IsMember == false&&(item is MethodCallExpression&&item.ToString()== "GetDate()") || (item is UnaryExpression && ((UnaryExpression)item).Operand.ToString() == "GetDate()")) { + var parameterName = this.Context.SqlParameterKeyWord + ExpressionConst.MethodConst + this.Context.ParameterIndex; + this.Context.ParameterIndex++; + methodCallExpressionArgs.MemberName = value; + methodCallExpressionArgs.MemberValue = null; + } + else if (methodCallExpressionArgs.IsMember == false) { var parameterName = this.Context.SqlParameterKeyWord + ExpressionConst.MethodConst + this.Context.ParameterIndex; this.Context.ParameterIndex++;