需要将表达式中的 Expression.Or 替换为 Expression.OrElse。在表达式树中,Expression.Or 对应于位运算符 OR(|),而 Expression.OrElse 对应于逻辑运算符 OR(||),后者才是 SQL 中使用的正确逻辑运算符。

This commit is contained in:
CAOMEI\s 2024-07-16 23:07:55 +08:00
parent 80745e5cb4
commit dc2117a3d8

View File

@ -52,7 +52,7 @@ public static class SqlSugarFilterExtension
}
Expression left = Expression.Equal(temp, Expression.Constant(owner));
right = Expression.Or(left, right);
right = Expression.OrElse(left, right);
});
});
var finalExpression = Expression.Lambda(right, new ParameterExpression[] { parameter });