Synchronization code

This commit is contained in:
sunkaixuan
2024-02-29 13:36:33 +08:00
parent 9889a648cb
commit f3528cb6f1

View File

@@ -19,6 +19,7 @@ namespace SqlSugar
bool isSetTempData, isValue, isValueBool, isLength, isDateValue, isHasValue, isDateDate, isMemberValue, isSingle, fieldIsBool, isSelectField, isField;
SettingParameters(parameter, out baseParameter, out expression, out isLeft, out isSetTempData, out isValue, out isValueBool, out isLength, out isDateValue, out isHasValue, out isDateDate, out isMemberValue, out isSingle, out fieldIsBool, out isSelectField, out isField);
baseParameter.ChildExpression = expression;
ProcessNavigationMemberAndUpdateExpression(ref expression, ref isValue);
if (isLength)
{
ResolveLength(parameter, isLeft, expression);
@@ -47,7 +48,7 @@ namespace SqlSugar
{
ResolveCallValue(parameter, baseParameter, expression, isLeft, isSetTempData, isSingle);
}
else if (isValue & IsNavValue(expression))
else if (isValue & IsNavValue(expression))
{
expression = expression.Expression as MemberExpression;
ResolveMemberValue(parameter, baseParameter, expression, isLeft, isSetTempData);
@@ -82,6 +83,21 @@ namespace SqlSugar
}
}
private void ProcessNavigationMemberAndUpdateExpression(ref MemberExpression expression, ref bool isValue)
{
if (isValue && expression.Expression is MemberExpression childMemExp)
{
if (childMemExp.Expression is MemberExpression navMemExp)
{
if (ExpressionTool.IsNavMember(this.Context, navMemExp))
{
expression = childMemExp;
isValue = false;
}
}
}
}
#region Navigate