From 8e12ecd34f857d60d1a2c6132e499c1dd95a8e29 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Wed, 26 Jun 2024 19:25:32 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=20*/=E8=A1=A8=E8=BE=BE?= =?UTF-8?q?=E5=BC=8F=E8=A7=A3=E6=9E=90=E9=97=AE=E9=A2=98=EF=BC=9B#1836?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Examples/base_entity/Program.cs | 8 ++++++++ FreeSql/Internal/CommonExpression.cs | 7 ++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Examples/base_entity/Program.cs b/Examples/base_entity/Program.cs index ba2af102..5f98da9e 100644 --- a/Examples/base_entity/Program.cs +++ b/Examples/base_entity/Program.cs @@ -619,6 +619,14 @@ namespace base_entity BaseEntity.Initialization(fsql, () => _asyncUow.Value); #endregion + var sqlt001 = fsql.Select() + .Where(u => u.Id == Guid.Empty) + .ToSql(u => u.GroupId / (u.Sort * 60)); + + sqlt001 = fsql.Select() + .Where(u => u.Id == Guid.Empty) + .ToSql(u => u.GroupId - (u.Sort + 2)); + var enumToString = fsql.Select().First(s => new { State = ((int)s.JoinTest01Enum2).ToString() diff --git a/FreeSql/Internal/CommonExpression.cs b/FreeSql/Internal/CommonExpression.cs index 38540631..e8cd9780 100644 --- a/FreeSql/Internal/CommonExpression.cs +++ b/FreeSql/Internal/CommonExpression.cs @@ -946,10 +946,11 @@ namespace FreeSql.Internal if (right == "NULL") oper = oper == "=" ? " IS " : " IS NOT "; switch (oper) { - case "%": return _common.Mod(left, right, leftExp.Type, rightExp.Type); + case "*": return $"({left} {oper} {right})"; + case "%": return $"({_common.Mod(left, right, leftExp.Type, rightExp.Type)})"; case "/": - if (leftExp.Type.IsIntegerType() && rightExp.Type.IsIntegerType()) return _common.Div(left, right, leftExp.Type, rightExp.Type); - break; + if (leftExp.Type.IsIntegerType() && rightExp.Type.IsIntegerType()) return $"({_common.Div(left, right, leftExp.Type, rightExp.Type)})"; + return $"({left} {oper} {right})"; case "AND": case "OR": if (leftMapColumn != null) left = $"{left} = {formatSql(true, leftMapColumn.Attribute.MapType, null, null)}";