Synchronization code

This commit is contained in:
sunkaixuan 2024-04-11 18:52:50 +08:00
parent 3adf897fc5
commit 15931fd55a

View File

@ -164,6 +164,21 @@ namespace SqlSugar
base.ExactExpression = expression;
var leftExpression = expression.Left;
var rightExpression = expression.Right;
if (operatorValue.IsIn("AND","OR")&&leftExpression is BinaryExpression exp)
{
if (exp?.Left is BinaryExpression expChild)
{
if (ExpressionTool.GetMethodName(expChild?.Right) == "Select"&& ExpressionTool.ContainsMethodName(expChild,"GroupBy"))
{
var childLeft = GetNewExpressionValue(expChild.Left);
var childRight = GetNewExpressionValue(expChild.Right);
var right = GetNewExpressionValue(exp.Right);
var ov = ExpressionTool.GetOperator(exp.NodeType);
base.Context.Result.Append($" (({childLeft+ " IN " +childRight}) {operatorValue} {GetNewExpressionValue(rightExpression)}) {ov} {right} ");
return;
}
}
}
if (operatorValue == "="&& ExpressionTool.RemoveConvert(leftExpression) is ConstantExpression)
{
leftExpression = expression.Right;