diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index 6ca84f12..537315e2 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -802,14 +802,3 @@
-Microsoft.Extensions.DependencyInjection.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
-
- 批量注入 Repository,可以参考代码自行调整
-
-
-
-
-
-
-
-
diff --git a/FreeSql.Tests/FreeSql.Tests/Internal/CommonExpressionTest.cs b/FreeSql.Tests/FreeSql.Tests/Internal/CommonExpressionTest.cs
index ed5e360f..dae1c1bd 100644
--- a/FreeSql.Tests/FreeSql.Tests/Internal/CommonExpressionTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/Internal/CommonExpressionTest.cs
@@ -127,7 +127,11 @@ WHERE (a.""Bool"" = 0 AND a.""Id"" > 0 AND a.""Bool"" = 0)", sql);
sql = fsql.Select().Where(a => a.Bool && a.Id > 0 && a.Bool).ToSql();
Assert.Equal(@"SELECT a.""Id"", a.""Bool"", a.""BoolNullable""
FROM ""IIFTest01Model"" a
-WHERE (a.""Bool"" = 1 AND a.""Id"" > 0 AND a.""Bool"" = 1)", sql);
+WHERE (a.""Bool"" = 1 AND a.""Id"" > 0 AND a.""Bool"" = 1)", sql);
+ sql = fsql.Select().Where(a => a.Bool && a.Id > 0 || a.Bool).ToSql();
+ Assert.Equal(@"SELECT a.""Id"", a.""Bool"", a.""BoolNullable""
+FROM ""IIFTest01Model"" a
+WHERE ((a.""Bool"" = 1 AND a.""Id"" > 0 OR a.""Bool"" = 1))", sql);
sql = fsql.Select().Where(a => a.BoolNullable == true && a.Id > 0 && a.BoolNullable == true).ToSql();
Assert.Equal(@"SELECT a.""Id"", a.""Bool"", a.""BoolNullable""
diff --git a/FreeSql/Internal/CommonExpression.cs b/FreeSql/Internal/CommonExpression.cs
index e6bd5c7b..37e46e3e 100644
--- a/FreeSql/Internal/CommonExpression.cs
+++ b/FreeSql/Internal/CommonExpression.cs
@@ -754,7 +754,16 @@ namespace FreeSql.Internal
return ExpressionLambdaToSql(Expression.Call(leftExp, MethodDateTimeSubtractTimeSpan, rightExp), tsc);
}
if (oper == "OR")
- return $"({GetBoolString(ExpressionLambdaToSql(leftExp, tsc))} {oper} {GetBoolString(ExpressionLambdaToSql(rightExp, tsc))})";
+ {
+ var leftBool = ExpressionLambdaToSql(leftExp, tsc);
+ if (SearchColumnByField(tsc._tables, tsc.currentTable, leftBool) != null) leftBool = $"{leftBool} = {formatSql(true, null, null, null)}";
+ else leftBool = GetBoolString(leftBool);
+
+ var rightBool = ExpressionLambdaToSql(rightExp, tsc);
+ if (SearchColumnByField(tsc._tables, tsc.currentTable, rightBool) != null) rightBool = $"{rightBool} = {formatSql(true, null, null, null)}";
+ else rightBool = GetBoolString(rightBool);
+ return $"({leftBool} {oper} {rightBool})";
+ }
return $"({ExpressionLambdaToSql(leftExp, tsc)} {oper} {ExpressionLambdaToSql(rightExp, tsc)})";
case "=":
case "<>":