Update SubQuery BUG

This commit is contained in:
610262374@qq.com
2018-10-12 18:27:06 +08:00
parent 8e5df54396
commit 38b107895a
3 changed files with 16 additions and 4 deletions

View File

@@ -43,7 +43,11 @@ namespace SqlSugar
public string GetValue(Expression expression = null)
{
var exp = expression as MethodCallExpression;
return "MAX("+SubTools.GetMethodValue(this.Context, exp.Arguments[0], ResolveExpressType.FieldSingle)+")";
var argExp = exp.Arguments[0];
var result = "MAX(" + SubTools.GetMethodValue(Context, argExp, ResolveExpressType.WhereMultiple) + ")";
var selfParameterName = Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters.First().Name) + UtilConstants.Dot;
result = result.Replace(selfParameterName, string.Empty);
return result;
}
}
}

View File

@@ -43,7 +43,11 @@ namespace SqlSugar
public string GetValue(Expression expression = null)
{
var exp = expression as MethodCallExpression;
return "MIN(" + SubTools.GetMethodValue(this.Context, exp.Arguments[0], ResolveExpressType.FieldSingle) + ")";
var argExp = exp.Arguments[0];
var result = "MIN(" + SubTools.GetMethodValue(Context, argExp, ResolveExpressType.WhereMultiple) + ")";
var selfParameterName = Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters.First().Name) + UtilConstants.Dot;
result = result.Replace(selfParameterName, string.Empty);
return result;
}
}
}

View File

@@ -6,7 +6,7 @@ using System.Text;
namespace SqlSugar
{
public class SubSum:ISubOperation
public class SubSum : ISubOperation
{
public bool HasWhere
{
@@ -43,7 +43,11 @@ namespace SqlSugar
public string GetValue(Expression expression = null)
{
var exp = expression as MethodCallExpression;
return "SUM("+SubTools.GetMethodValue(this.Context, exp.Arguments[0], ResolveExpressType.FieldSingle)+")";
var argExp = exp.Arguments[0];
var result = "SUM(" + SubTools.GetMethodValue(Context, argExp, ResolveExpressType.WhereMultiple)+")";
var selfParameterName = Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters.First().Name) + UtilConstants.Dot;
result = result.Replace(selfParameterName, string.Empty);
return result;
}
}
}