Browse Source

Update exp to sql

SqlSugar5
sunkaixuan 2 years ago
parent
commit
b3921d3f22
  1. 8
      Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs
  2. 10
      Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve.cs

8
Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs

@ -130,6 +130,14 @@ namespace SqlSugar
return newExp;
}
public static string GetMethodName(Expression expression)
{
if (expression is MethodCallExpression)
{
return (expression as MethodCallExpression).Method.Name;
}
return null;
}
public static Type GetMemberInfoType(MemberInfo member)
{

10
Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve.cs

@ -530,6 +530,11 @@ namespace SqlSugar
}
}
}
else if (IsExtSqlFuncObj(item))
{
var value = GetNewExpressionValue(item);
parameter.Context.Result.Append($" {value} AS {asName} ");
}
else
{
asName = GetAsNameResolveAnObject(parameter, item, asName, isSameType);
@ -744,6 +749,11 @@ namespace SqlSugar
#endregion
#region Validate
private bool IsExtSqlFuncObj(Expression item)
{
return this.Context.SqlFuncServices != null && item is MethodCallExpression && this.Context.SqlFuncServices.Any(it => it.UniqueMethodName == ExpressionTool.GetMethodName(item));
}
private bool IsNullValue(ExpressionParameter parameter, object value)
{
return value == null

Loading…
Cancel
Save