mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-05-04 04:37:58 +08:00
-
This commit is contained in:
parent
00c64dd9f3
commit
d7b714f530
@ -11,12 +11,14 @@ namespace SqlSugar
|
|||||||
public MemberExpressionResolve(ExpressionParameter parameter) : base(parameter)
|
public MemberExpressionResolve(ExpressionParameter parameter) : base(parameter)
|
||||||
{
|
{
|
||||||
var baseParameter = parameter.BaseParameter;
|
var baseParameter = parameter.BaseParameter;
|
||||||
var isLeft = parameter.IsLeft;
|
|
||||||
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.Result);
|
|
||||||
var expression = base.Expression as MemberExpression;
|
var expression = base.Expression as MemberExpression;
|
||||||
var memberName = expression.Member.Name;
|
var memberName = expression.Member.Name;
|
||||||
var childExpression = expression.Expression as MemberExpression;
|
var childExpression = expression.Expression as MemberExpression;
|
||||||
var childIsMember = childExpression != null;
|
var childIsMember = childExpression != null;
|
||||||
|
string fieldName = string.Empty;
|
||||||
|
|
||||||
|
var isLeft = parameter.IsLeft;
|
||||||
|
var isSetTempData = baseParameter.CommonTempData.IsValuable() && baseParameter.CommonTempData.Equals(CommonTempDataType.Result);
|
||||||
var isValue = memberName == "Value" && expression.Member.DeclaringType.Name == "Nullable`1";
|
var isValue = memberName == "Value" && expression.Member.DeclaringType.Name == "Nullable`1";
|
||||||
var isBool = expression.Type == UtilConstants.BoolType;
|
var isBool = expression.Type == UtilConstants.BoolType;
|
||||||
var isValueBool = isValue && isBool && parameter.BaseExpression == null;
|
var isValueBool = isValue && isBool && parameter.BaseExpression == null;
|
||||||
@ -26,6 +28,7 @@ namespace SqlSugar
|
|||||||
var isHasValue = isLogicOperator && memberName == "HasValue" && expression.Expression != null && expression.NodeType == ExpressionType.MemberAccess;
|
var isHasValue = isLogicOperator && memberName == "HasValue" && expression.Expression != null && expression.NodeType == ExpressionType.MemberAccess;
|
||||||
var isDateDate = memberName == "Date" && expression.Expression.Type == UtilConstants.DateType;
|
var isDateDate = memberName == "Date" && expression.Expression.Type == UtilConstants.DateType;
|
||||||
var isMemberValue = expression.Expression != null && expression.Expression.NodeType != ExpressionType.Parameter && !isValueBool;
|
var isMemberValue = expression.Expression != null && expression.Expression.NodeType != ExpressionType.Parameter && !isValueBool;
|
||||||
|
|
||||||
if (isLength)
|
if (isLength)
|
||||||
{
|
{
|
||||||
ResolveLength(parameter, isLeft, expression);return;
|
ResolveLength(parameter, isLeft, expression);return;
|
||||||
@ -49,31 +52,22 @@ namespace SqlSugar
|
|||||||
ResolveMemberValue(parameter, baseParameter, isLeft, isSetTempData, expression);
|
ResolveMemberValue(parameter, baseParameter, isLeft, isSetTempData, expression);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
string fieldName = string.Empty;
|
|
||||||
baseParameter.ChildExpression = expression;
|
baseParameter.ChildExpression = expression;
|
||||||
switch (parameter.Context.ResolveType)
|
switch (parameter.Context.ResolveType)
|
||||||
{
|
{
|
||||||
case ResolveExpressType.SelectSingle:
|
case ResolveExpressType.SelectSingle:
|
||||||
fieldName = GetSingleName(parameter, expression, isLeft);
|
fieldName = GetSingleName(parameter, expression, isLeft);
|
||||||
if (isSetTempData)
|
if (isSetTempData)
|
||||||
{
|
|
||||||
baseParameter.CommonTempData = fieldName;
|
baseParameter.CommonTempData = fieldName;
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
base.Context.Result.Append(fieldName);
|
base.Context.Result.Append(fieldName);
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case ResolveExpressType.SelectMultiple:
|
case ResolveExpressType.SelectMultiple:
|
||||||
fieldName = GetMultipleName(parameter, expression, isLeft);
|
fieldName = GetMultipleName(parameter, expression, isLeft);
|
||||||
if (isSetTempData)
|
if (isSetTempData)
|
||||||
{
|
|
||||||
baseParameter.CommonTempData = fieldName;
|
baseParameter.CommonTempData = fieldName;
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
base.Context.Result.Append(fieldName);
|
base.Context.Result.Append(fieldName);
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case ResolveExpressType.WhereSingle:
|
case ResolveExpressType.WhereSingle:
|
||||||
case ResolveExpressType.WhereMultiple:
|
case ResolveExpressType.WhereMultiple:
|
||||||
|
Loading…
Reference in New Issue
Block a user