mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-05-03 12:18:00 +08:00
-
This commit is contained in:
parent
eccdfbce94
commit
fd31710572
@ -28,7 +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;
|
||||||
|
var isSingle = parameter.Context.ResolveType == ResolveExpressType.WhereSingle;
|
||||||
if (isLength)
|
if (isLength)
|
||||||
{
|
{
|
||||||
ResolveLength(parameter, isLeft, expression); return;
|
ResolveLength(parameter, isLeft, expression); return;
|
||||||
@ -41,7 +41,10 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
ResolveDateValue(parameter, isLeft, expression); return;
|
ResolveDateValue(parameter, isLeft, expression); return;
|
||||||
}
|
}
|
||||||
else if (isValueBool) { isValue = false; }
|
else if (isValueBool)
|
||||||
|
{
|
||||||
|
ResolveValueBool(parameter, baseParameter, expression, out fieldName, isLeft, isSingle); return;
|
||||||
|
}
|
||||||
else if (isValue) { expression = expression.Expression as MemberExpression; }
|
else if (isValue) { expression = expression.Expression as MemberExpression; }
|
||||||
else if (isDateDate)
|
else if (isDateDate)
|
||||||
{
|
{
|
||||||
@ -71,18 +74,13 @@ namespace SqlSugar
|
|||||||
break;
|
break;
|
||||||
case ResolveExpressType.WhereSingle:
|
case ResolveExpressType.WhereSingle:
|
||||||
case ResolveExpressType.WhereMultiple:
|
case ResolveExpressType.WhereMultiple:
|
||||||
var isSingle = parameter.Context.ResolveType == ResolveExpressType.WhereSingle;
|
|
||||||
if (isSetTempData)
|
if (isSetTempData)
|
||||||
{
|
{
|
||||||
fieldName = GetName(parameter, expression, null, isSingle);
|
fieldName = GetName(parameter, expression, null, isSingle);
|
||||||
baseParameter.CommonTempData = fieldName;
|
baseParameter.CommonTempData = fieldName;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (isValueBool)
|
if (ExpressionTool.IsConstExpression(expression))
|
||||||
{
|
|
||||||
fieldName = GetName(parameter, expression.Expression as MemberExpression, isLeft, isSingle);
|
|
||||||
}
|
|
||||||
else if (ExpressionTool.IsConstExpression(expression))
|
|
||||||
{
|
{
|
||||||
var value = ExpressionTool.GetMemberValue(expression.Member, expression);
|
var value = ExpressionTool.GetMemberValue(expression.Member, expression);
|
||||||
base.AppendValue(parameter, isLeft, value);
|
base.AppendValue(parameter, isLeft, value);
|
||||||
@ -116,7 +114,18 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#region Resolve special member
|
#region Resolve special member
|
||||||
|
private void ResolveValueBool(ExpressionParameter parameter, ExpressionParameter baseParameter, MemberExpression expression, out string fieldName, bool? isLeft, bool isSingle)
|
||||||
|
{
|
||||||
|
fieldName = GetName(parameter, expression.Expression as MemberExpression, isLeft, isSingle);
|
||||||
|
if (expression.Type == UtilConstants.BoolType && baseParameter.OperatorValue.IsNullOrEmpty())
|
||||||
|
{
|
||||||
|
fieldName = "( " + fieldName + "=1 )";
|
||||||
|
}
|
||||||
|
AppendMember(parameter, isLeft, fieldName);
|
||||||
|
}
|
||||||
|
|
||||||
private void ResolveMemberValue(ExpressionParameter parameter, ExpressionParameter baseParameter, bool? isLeft, bool isSetTempData, MemberExpression expression)
|
private void ResolveMemberValue(ExpressionParameter parameter, ExpressionParameter baseParameter, bool? isLeft, bool isSetTempData, MemberExpression expression)
|
||||||
{
|
{
|
||||||
var value = ExpressionTool.GetMemberValue(expression.Member, expression);
|
var value = ExpressionTool.GetMemberValue(expression.Member, expression);
|
||||||
|
Loading…
Reference in New Issue
Block a user