mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-10-15 18:55:07 +08:00
Update exp to sql
This commit is contained in:
@@ -509,6 +509,12 @@ namespace SqlSugar
|
||||
return string.Format(" DATEDIFF({0},{1},{2}) ", parameter.MemberValue?.ToString().ToSqlFilter(), parameter2.MemberName, parameter3.MemberName); ;
|
||||
}
|
||||
|
||||
public virtual string FormatRowNumber(MethodCallExpressionModel model)
|
||||
{
|
||||
var str = model.Args[0].MemberValue.ObjToString();
|
||||
var array = model.Args.Skip(1).Select(it => it.IsMember ? it.MemberName : it.MemberValue).ToArray();
|
||||
return string.Format("'" + str + "'", array);
|
||||
}
|
||||
public virtual string Format(MethodCallExpressionModel model)
|
||||
{
|
||||
|
||||
|
@@ -76,6 +76,7 @@ namespace SqlSugar
|
||||
string Oracle_ToChar(MethodCallExpressionModel model);
|
||||
string SqlServer_DateDiff(MethodCallExpressionModel model);
|
||||
string Format(MethodCallExpressionModel model);
|
||||
string FormatRowNumber(MethodCallExpressionModel model);
|
||||
string Abs(MethodCallExpressionModel model);
|
||||
string Round(MethodCallExpressionModel model);
|
||||
|
||||
|
@@ -109,6 +109,7 @@ namespace SqlSugar
|
||||
public virtual Action<Type> InitMappingInfo { get; set; }
|
||||
public virtual Action RefreshMapping { get; set; }
|
||||
public virtual Type SubTableType { get; set; }
|
||||
public string MethodName { get; set; }
|
||||
#endregion
|
||||
|
||||
#region Core methods
|
||||
|
@@ -677,7 +677,7 @@ namespace SqlSugar
|
||||
.GetEntityInfo(oppsite.Expression.Type).Columns.FirstOrDefault(it => it.PropertyName == oppsite.Member.Name);
|
||||
return columnInfo;
|
||||
}
|
||||
protected MethodCallExpressionArgs GetMethodCallArgs(ExpressionParameter parameter, Expression item)
|
||||
protected MethodCallExpressionArgs GetMethodCallArgs(ExpressionParameter parameter, Expression item,string name=null)
|
||||
{
|
||||
var newContext = this.Context.GetCopyContext();
|
||||
newContext.MappingColumns = this.Context.MappingColumns;
|
||||
@@ -685,6 +685,7 @@ namespace SqlSugar
|
||||
newContext.IgnoreComumnList = this.Context.IgnoreComumnList;
|
||||
newContext.IsSingle = this.Context.IsSingle;
|
||||
newContext.SqlFuncServices = this.Context.SqlFuncServices;
|
||||
newContext.MethodName = name;
|
||||
newContext.Resolve(item, this.Context.IsJoin ? ResolveExpressType.WhereMultiple : ResolveExpressType.WhereSingle);
|
||||
this.Context.Index = newContext.Index;
|
||||
this.Context.ParameterIndex = newContext.ParameterIndex;
|
||||
|
@@ -559,7 +559,7 @@ namespace SqlSugar
|
||||
}
|
||||
else if (isBinaryExpression)
|
||||
{
|
||||
model.Args.Add(GetMethodCallArgs(parameter, item));
|
||||
model.Args.Add(GetMethodCallArgs(parameter, item,name));
|
||||
}
|
||||
else if (isSubIIF)
|
||||
{
|
||||
@@ -1002,6 +1002,10 @@ namespace SqlSugar
|
||||
case "Format":
|
||||
var xx=base.BaseParameter;
|
||||
var result = this.Context.DbMehtods.Format(model);
|
||||
if (this.Context.MethodName == "RowNumber")
|
||||
{
|
||||
result = this.Context.DbMehtods.FormatRowNumber(model);
|
||||
}
|
||||
this.Context.Parameters.RemoveAll(it => model.Args.Select(x=>x.MemberName.ObjToString()).Contains(it.ParameterName) );
|
||||
return result;
|
||||
case "Abs":
|
||||
|
Reference in New Issue
Block a user