diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index 1a43f59e..9c0597d5 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -106,13 +106,6 @@
清空状态数据
-
-
- 根据 lambda 条件删除数据
-
-
-
-
添加
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/MySqlConnectorExpression/OtherTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/MySqlConnectorExpression/OtherTest.cs
index 361c2c67..37b81c4d 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/MySqlConnectorExpression/OtherTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/MySqlConnectorExpression/OtherTest.cs
@@ -47,6 +47,30 @@ namespace FreeSql.Tests.MySqlConnectorExpression
var t33 = select.Where(a => a.testFieldBoolNullable == false).ToList();
var t44 = select.Where(a => !a.testFieldBoolNullable.Value).ToList();
var t55 = select.Where(a => a.testFieldBoolNullable.Value).ToList();
+
+ var t111 = select.Where(a => a.testFieldBool == true && a.Id > 0).ToList();
+ var t222 = select.Where(a => a.testFieldBool != true && a.Id > 0).ToList();
+ var t333 = select.Where(a => a.testFieldBool == false && a.Id > 0).ToList();
+ var t444 = select.Where(a => !a.testFieldBool && a.Id > 0).ToList();
+ var t555 = select.Where(a => a.testFieldBool && a.Id > 0).ToList();
+
+ var t1111 = select.Where(a => a.testFieldBoolNullable == true && a.Id > 0).ToList();
+ var t2222 = select.Where(a => a.testFieldBoolNullable != true && a.Id > 0).ToList();
+ var t3333 = select.Where(a => a.testFieldBoolNullable == false && a.Id > 0).ToList();
+ var t4444 = select.Where(a => !a.testFieldBoolNullable.Value && a.Id > 0).ToList();
+ var t5555 = select.Where(a => a.testFieldBoolNullable.Value && a.Id > 0).ToList();
+
+ var t11111 = select.Where(a => a.testFieldBool == true && a.Id > 0 && a.testFieldBool == true).ToList();
+ var t22222 = select.Where(a => a.testFieldBool != true && a.Id > 0 && a.testFieldBool != true).ToList();
+ var t33333 = select.Where(a => a.testFieldBool == false && a.Id > 0 && a.testFieldBool == false).ToList();
+ var t44444 = select.Where(a => !a.testFieldBool && a.Id > 0 && !a.testFieldBool).ToList();
+ var t55555 = select.Where(a => a.testFieldBool && a.Id > 0 && a.testFieldBool).ToList();
+
+ var t111111 = select.Where(a => a.testFieldBoolNullable == true && a.Id > 0 && a.testFieldBoolNullable == true).ToList();
+ var t222222 = select.Where(a => a.testFieldBoolNullable != true && a.Id > 0 && a.testFieldBoolNullable != true).ToList();
+ var t333333 = select.Where(a => a.testFieldBoolNullable == false && a.Id > 0 && a.testFieldBoolNullable == false).ToList();
+ var t444444 = select.Where(a => !a.testFieldBoolNullable.Value && a.Id > 0 && !a.testFieldBoolNullable.Value).ToList();
+ var t555555 = select.Where(a => a.testFieldBoolNullable.Value && a.Id > 0 && a.testFieldBoolNullable.Value).ToList();
}
[Fact]
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlExpression/OtherTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlExpression/OtherTest.cs
index 7d5f4293..794f9e31 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlExpression/OtherTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlExpression/OtherTest.cs
@@ -47,6 +47,30 @@ namespace FreeSql.Tests.Odbc.MySqlExpression
var t33 = select.Where(a => a.testFieldBoolNullable == false).ToList();
var t44 = select.Where(a => !a.testFieldBoolNullable.Value).ToList();
var t55 = select.Where(a => a.testFieldBoolNullable.Value).ToList();
+
+ var t111 = select.Where(a => a.testFieldBool == true && a.Id > 0).ToList();
+ var t222 = select.Where(a => a.testFieldBool != true && a.Id > 0).ToList();
+ var t333 = select.Where(a => a.testFieldBool == false && a.Id > 0).ToList();
+ var t444 = select.Where(a => !a.testFieldBool && a.Id > 0).ToList();
+ var t555 = select.Where(a => a.testFieldBool && a.Id > 0).ToList();
+
+ var t1111 = select.Where(a => a.testFieldBoolNullable == true && a.Id > 0).ToList();
+ var t2222 = select.Where(a => a.testFieldBoolNullable != true && a.Id > 0).ToList();
+ var t3333 = select.Where(a => a.testFieldBoolNullable == false && a.Id > 0).ToList();
+ var t4444 = select.Where(a => !a.testFieldBoolNullable.Value && a.Id > 0).ToList();
+ var t5555 = select.Where(a => a.testFieldBoolNullable.Value && a.Id > 0).ToList();
+
+ var t11111 = select.Where(a => a.testFieldBool == true && a.Id > 0 && a.testFieldBool == true).ToList();
+ var t22222 = select.Where(a => a.testFieldBool != true && a.Id > 0 && a.testFieldBool != true).ToList();
+ var t33333 = select.Where(a => a.testFieldBool == false && a.Id > 0 && a.testFieldBool == false).ToList();
+ var t44444 = select.Where(a => !a.testFieldBool && a.Id > 0 && !a.testFieldBool).ToList();
+ var t55555 = select.Where(a => a.testFieldBool && a.Id > 0 && a.testFieldBool).ToList();
+
+ var t111111 = select.Where(a => a.testFieldBoolNullable == true && a.Id > 0 && a.testFieldBoolNullable == true).ToList();
+ var t222222 = select.Where(a => a.testFieldBoolNullable != true && a.Id > 0 && a.testFieldBoolNullable != true).ToList();
+ var t333333 = select.Where(a => a.testFieldBoolNullable == false && a.Id > 0 && a.testFieldBoolNullable == false).ToList();
+ var t444444 = select.Where(a => !a.testFieldBoolNullable.Value && a.Id > 0 && !a.testFieldBoolNullable.Value).ToList();
+ var t555555 = select.Where(a => a.testFieldBoolNullable.Value && a.Id > 0 && a.testFieldBoolNullable.Value).ToList();
}
[Fact]
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/OracleExpression/OtherTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/OracleExpression/OtherTest.cs
index 3b8ef42d..a3a42d06 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/OracleExpression/OtherTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/OracleExpression/OtherTest.cs
@@ -45,6 +45,30 @@ namespace FreeSql.Tests.Odbc.OracleExpression
var t33 = select.Where(a => a.BoolNullable == false).ToList();
var t44 = select.Where(a => !a.BoolNullable.Value).ToList();
var t55 = select.Where(a => a.BoolNullable.Value).ToList();
+
+ var t111 = select.Where(a => a.Bool == true && a.Id > 0).ToList();
+ var t222 = select.Where(a => a.Bool != true && a.Id > 0).ToList();
+ var t333 = select.Where(a => a.Bool == false && a.Id > 0).ToList();
+ var t444 = select.Where(a => !a.Bool && a.Id > 0).ToList();
+ var t555 = select.Where(a => a.Bool && a.Id > 0).ToList();
+
+ var t1111 = select.Where(a => a.BoolNullable == true && a.Id > 0).ToList();
+ var t2222 = select.Where(a => a.BoolNullable != true && a.Id > 0).ToList();
+ var t3333 = select.Where(a => a.BoolNullable == false && a.Id > 0).ToList();
+ var t4444 = select.Where(a => !a.BoolNullable.Value && a.Id > 0).ToList();
+ var t5555 = select.Where(a => a.BoolNullable.Value && a.Id > 0).ToList();
+
+ var t11111 = select.Where(a => a.Bool == true && a.Id > 0 && a.Bool == true).ToList();
+ var t22222 = select.Where(a => a.Bool != true && a.Id > 0 && a.Bool != true).ToList();
+ var t33333 = select.Where(a => a.Bool == false && a.Id > 0 && a.Bool == false).ToList();
+ var t44444 = select.Where(a => !a.Bool && a.Id > 0 && !a.Bool).ToList();
+ var t55555 = select.Where(a => a.Bool && a.Id > 0 && a.Bool).ToList();
+
+ var t111111 = select.Where(a => a.BoolNullable == true && a.Id > 0 && a.BoolNullable == true).ToList();
+ var t222222 = select.Where(a => a.BoolNullable != true && a.Id > 0 && a.BoolNullable != true).ToList();
+ var t333333 = select.Where(a => a.BoolNullable == false && a.Id > 0 && a.BoolNullable == false).ToList();
+ var t444444 = select.Where(a => !a.BoolNullable.Value && a.Id > 0 && !a.BoolNullable.Value).ToList();
+ var t555555 = select.Where(a => a.BoolNullable.Value && a.Id > 0 && a.BoolNullable.Value).ToList();
}
[Fact]
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLExpression/OtherTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLExpression/OtherTest.cs
index 39d3a70a..4b9e66f8 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLExpression/OtherTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLExpression/OtherTest.cs
@@ -50,6 +50,30 @@ namespace FreeSql.Tests.Odbc.PostgreSQLExpression
var t33 = select.Where(a => a.testFieldBoolNullable == false).ToList();
var t44 = select.Where(a => !a.testFieldBoolNullable.Value).ToList();
var t55 = select.Where(a => a.testFieldBoolNullable.Value).ToList();
+
+ var t111 = select.Where(a => a.testFieldBool == true && a.Id > 0).ToList();
+ var t222 = select.Where(a => a.testFieldBool != true && a.Id > 0).ToList();
+ var t333 = select.Where(a => a.testFieldBool == false && a.Id > 0).ToList();
+ var t444 = select.Where(a => !a.testFieldBool && a.Id > 0).ToList();
+ var t555 = select.Where(a => a.testFieldBool && a.Id > 0).ToList();
+
+ var t1111 = select.Where(a => a.testFieldBoolNullable == true && a.Id > 0).ToList();
+ var t2222 = select.Where(a => a.testFieldBoolNullable != true && a.Id > 0).ToList();
+ var t3333 = select.Where(a => a.testFieldBoolNullable == false && a.Id > 0).ToList();
+ var t4444 = select.Where(a => !a.testFieldBoolNullable.Value && a.Id > 0).ToList();
+ var t5555 = select.Where(a => a.testFieldBoolNullable.Value && a.Id > 0).ToList();
+
+ var t11111 = select.Where(a => a.testFieldBool == true && a.Id > 0 && a.testFieldBool == true).ToList();
+ var t22222 = select.Where(a => a.testFieldBool != true && a.Id > 0 && a.testFieldBool != true).ToList();
+ var t33333 = select.Where(a => a.testFieldBool == false && a.Id > 0 && a.testFieldBool == false).ToList();
+ var t44444 = select.Where(a => !a.testFieldBool && a.Id > 0 && !a.testFieldBool).ToList();
+ var t55555 = select.Where(a => a.testFieldBool && a.Id > 0 && a.testFieldBool).ToList();
+
+ var t111111 = select.Where(a => a.testFieldBoolNullable == true && a.Id > 0 && a.testFieldBoolNullable == true).ToList();
+ var t222222 = select.Where(a => a.testFieldBoolNullable != true && a.Id > 0 && a.testFieldBoolNullable != true).ToList();
+ var t333333 = select.Where(a => a.testFieldBoolNullable == false && a.Id > 0 && a.testFieldBoolNullable == false).ToList();
+ var t444444 = select.Where(a => !a.testFieldBoolNullable.Value && a.Id > 0 && !a.testFieldBoolNullable.Value).ToList();
+ var t555555 = select.Where(a => a.testFieldBoolNullable.Value && a.Id > 0 && a.testFieldBoolNullable.Value).ToList();
}
[Fact]
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerExpression/OtherTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerExpression/OtherTest.cs
index a4e1494e..63646aa8 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerExpression/OtherTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerExpression/OtherTest.cs
@@ -42,6 +42,30 @@ namespace FreeSql.Tests.Odbc.SqlServerExpression
var t33 = select.Where(a => a.testFieldBoolNullable == false).ToList();
var t44 = select.Where(a => !a.testFieldBoolNullable.Value).ToList();
var t55 = select.Where(a => a.testFieldBoolNullable.Value).ToList();
+
+ var t111 = select.Where(a => a.testFieldBool == true && a.Id > 0).ToList();
+ var t222 = select.Where(a => a.testFieldBool != true && a.Id > 0).ToList();
+ var t333 = select.Where(a => a.testFieldBool == false && a.Id > 0).ToList();
+ var t444 = select.Where(a => !a.testFieldBool && a.Id > 0).ToList();
+ var t555 = select.Where(a => a.testFieldBool && a.Id > 0).ToList();
+
+ var t1111 = select.Where(a => a.testFieldBoolNullable == true && a.Id > 0).ToList();
+ var t2222 = select.Where(a => a.testFieldBoolNullable != true && a.Id > 0).ToList();
+ var t3333 = select.Where(a => a.testFieldBoolNullable == false && a.Id > 0).ToList();
+ var t4444 = select.Where(a => !a.testFieldBoolNullable.Value && a.Id > 0).ToList();
+ var t5555 = select.Where(a => a.testFieldBoolNullable.Value && a.Id > 0).ToList();
+
+ var t11111 = select.Where(a => a.testFieldBool == true && a.Id > 0 && a.testFieldBool == true).ToList();
+ var t22222 = select.Where(a => a.testFieldBool != true && a.Id > 0 && a.testFieldBool != true).ToList();
+ var t33333 = select.Where(a => a.testFieldBool == false && a.Id > 0 && a.testFieldBool == false).ToList();
+ var t44444 = select.Where(a => !a.testFieldBool && a.Id > 0 && !a.testFieldBool).ToList();
+ var t55555 = select.Where(a => a.testFieldBool && a.Id > 0 && a.testFieldBool).ToList();
+
+ var t111111 = select.Where(a => a.testFieldBoolNullable == true && a.Id > 0 && a.testFieldBoolNullable == true).ToList();
+ var t222222 = select.Where(a => a.testFieldBoolNullable != true && a.Id > 0 && a.testFieldBoolNullable != true).ToList();
+ var t333333 = select.Where(a => a.testFieldBoolNullable == false && a.Id > 0 && a.testFieldBoolNullable == false).ToList();
+ var t444444 = select.Where(a => !a.testFieldBoolNullable.Value && a.Id > 0 && !a.testFieldBoolNullable.Value).ToList();
+ var t555555 = select.Where(a => a.testFieldBoolNullable.Value && a.Id > 0 && a.testFieldBoolNullable.Value).ToList();
}
[Fact]
diff --git a/FreeSql.Tests/FreeSql.Tests/MySql/MySqlExpression/OtherTest.cs b/FreeSql.Tests/FreeSql.Tests/MySql/MySqlExpression/OtherTest.cs
index 83c2c2be..db07a187 100644
--- a/FreeSql.Tests/FreeSql.Tests/MySql/MySqlExpression/OtherTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/MySql/MySqlExpression/OtherTest.cs
@@ -47,6 +47,30 @@ namespace FreeSql.Tests.MySqlExpression
var t33 = select.Where(a => a.testFieldBoolNullable == false).ToList();
var t44 = select.Where(a => !a.testFieldBoolNullable.Value).ToList();
var t55 = select.Where(a => a.testFieldBoolNullable.Value).ToList();
+
+ var t111 = select.Where(a => a.testFieldBool == true && a.Id > 0).ToList();
+ var t222 = select.Where(a => a.testFieldBool != true && a.Id > 0).ToList();
+ var t333 = select.Where(a => a.testFieldBool == false && a.Id > 0).ToList();
+ var t444 = select.Where(a => !a.testFieldBool && a.Id > 0).ToList();
+ var t555 = select.Where(a => a.testFieldBool && a.Id > 0).ToList();
+
+ var t1111 = select.Where(a => a.testFieldBoolNullable == true && a.Id > 0).ToList();
+ var t2222 = select.Where(a => a.testFieldBoolNullable != true && a.Id > 0).ToList();
+ var t3333 = select.Where(a => a.testFieldBoolNullable == false && a.Id > 0).ToList();
+ var t4444 = select.Where(a => !a.testFieldBoolNullable.Value && a.Id > 0).ToList();
+ var t5555 = select.Where(a => a.testFieldBoolNullable.Value && a.Id > 0).ToList();
+
+ var t11111 = select.Where(a => a.testFieldBool == true && a.Id > 0 && a.testFieldBool == true).ToList();
+ var t22222 = select.Where(a => a.testFieldBool != true && a.Id > 0 && a.testFieldBool != true).ToList();
+ var t33333 = select.Where(a => a.testFieldBool == false && a.Id > 0 && a.testFieldBool == false).ToList();
+ var t44444 = select.Where(a => !a.testFieldBool && a.Id > 0 && !a.testFieldBool).ToList();
+ var t55555 = select.Where(a => a.testFieldBool && a.Id > 0 && a.testFieldBool).ToList();
+
+ var t111111 = select.Where(a => a.testFieldBoolNullable == true && a.Id > 0 && a.testFieldBoolNullable == true).ToList();
+ var t222222 = select.Where(a => a.testFieldBoolNullable != true && a.Id > 0 && a.testFieldBoolNullable != true).ToList();
+ var t333333 = select.Where(a => a.testFieldBoolNullable == false && a.Id > 0 && a.testFieldBoolNullable == false).ToList();
+ var t444444 = select.Where(a => !a.testFieldBoolNullable.Value && a.Id > 0 && !a.testFieldBoolNullable.Value).ToList();
+ var t555555 = select.Where(a => a.testFieldBoolNullable.Value && a.Id > 0 && a.testFieldBoolNullable.Value).ToList();
}
[Fact]
diff --git a/FreeSql.Tests/FreeSql.Tests/Oracle/OracleExpression/OtherTest.cs b/FreeSql.Tests/FreeSql.Tests/Oracle/OracleExpression/OtherTest.cs
index ed6a76d7..1c7d9048 100644
--- a/FreeSql.Tests/FreeSql.Tests/Oracle/OracleExpression/OtherTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/Oracle/OracleExpression/OtherTest.cs
@@ -45,6 +45,30 @@ namespace FreeSql.Tests.OracleExpression
var t33 = select.Where(a => a.BoolNullable == false).ToList();
var t44 = select.Where(a => !a.BoolNullable.Value).ToList();
var t55 = select.Where(a => a.BoolNullable.Value).ToList();
+
+ var t111 = select.Where(a => a.Bool == true && a.Id > 0).ToList();
+ var t222 = select.Where(a => a.Bool != true && a.Id > 0).ToList();
+ var t333 = select.Where(a => a.Bool == false && a.Id > 0).ToList();
+ var t444 = select.Where(a => !a.Bool && a.Id > 0).ToList();
+ var t555 = select.Where(a => a.Bool && a.Id > 0).ToList();
+
+ var t1111 = select.Where(a => a.BoolNullable == true && a.Id > 0).ToList();
+ var t2222 = select.Where(a => a.BoolNullable != true && a.Id > 0).ToList();
+ var t3333 = select.Where(a => a.BoolNullable == false && a.Id > 0).ToList();
+ var t4444 = select.Where(a => !a.BoolNullable.Value && a.Id > 0).ToList();
+ var t5555 = select.Where(a => a.BoolNullable.Value && a.Id > 0).ToList();
+
+ var t11111 = select.Where(a => a.Bool == true && a.Id > 0 && a.Bool == true).ToList();
+ var t22222 = select.Where(a => a.Bool != true && a.Id > 0 && a.Bool != true).ToList();
+ var t33333 = select.Where(a => a.Bool == false && a.Id > 0 && a.Bool == false).ToList();
+ var t44444 = select.Where(a => !a.Bool && a.Id > 0 && !a.Bool).ToList();
+ var t55555 = select.Where(a => a.Bool && a.Id > 0 && a.Bool).ToList();
+
+ var t111111 = select.Where(a => a.BoolNullable == true && a.Id > 0 && a.BoolNullable == true).ToList();
+ var t222222 = select.Where(a => a.BoolNullable != true && a.Id > 0 && a.BoolNullable != true).ToList();
+ var t333333 = select.Where(a => a.BoolNullable == false && a.Id > 0 && a.BoolNullable == false).ToList();
+ var t444444 = select.Where(a => !a.BoolNullable.Value && a.Id > 0 && !a.BoolNullable.Value).ToList();
+ var t555555 = select.Where(a => a.BoolNullable.Value && a.Id > 0 && a.BoolNullable.Value).ToList();
}
[Fact]
diff --git a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLExpression/OtherTest.cs b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLExpression/OtherTest.cs
index f29fa7d3..950c538c 100644
--- a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLExpression/OtherTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLExpression/OtherTest.cs
@@ -43,17 +43,41 @@ namespace FreeSql.Tests.PostgreSQLExpression
[Fact]
public void Boolean()
{
- var t1 = select.Where(a => a.testFieldBool == true).ToList();
- var t2 = select.Where(a => a.testFieldBool != true).ToList();
- var t3 = select.Where(a => a.testFieldBool == false).ToList();
- var t4 = select.Where(a => !a.testFieldBool).ToList();
- var t5 = select.Where(a => a.testFieldBool).ToList();
+ var t1 = select.Where(a => a.testFieldBool == true).Limit(10).ToList();
+ var t2 = select.Where(a => a.testFieldBool != true).Limit(10).ToList();
+ var t3 = select.Where(a => a.testFieldBool == false).Limit(10).ToList();
+ var t4 = select.Where(a => !a.testFieldBool).Limit(10).ToList();
+ var t5 = select.Where(a => a.testFieldBool).Limit(10).ToList();
- var t11 = select.Where(a => a.testFieldBoolNullable == true).ToList();
- var t22 = select.Where(a => a.testFieldBoolNullable != true).ToList();
- var t33 = select.Where(a => a.testFieldBoolNullable == false).ToList();
- var t44 = select.Where(a => !a.testFieldBoolNullable.Value).ToList();
- var t55 = select.Where(a => a.testFieldBoolNullable.Value).ToList();
+ var t11 = select.Where(a => a.testFieldBoolNullable == true).Limit(10).ToList();
+ var t22 = select.Where(a => a.testFieldBoolNullable != true).Limit(10).ToList();
+ var t33 = select.Where(a => a.testFieldBoolNullable == false).Limit(10).ToList();
+ var t44 = select.Where(a => !a.testFieldBoolNullable.Value).Limit(10).ToList();
+ var t55 = select.Where(a => a.testFieldBoolNullable.Value).Limit(10).ToList();
+
+ var t111 = select.Where(a => a.testFieldBool == true && a.Id > 0).Limit(10).ToList();
+ var t222 = select.Where(a => a.testFieldBool != true && a.Id > 0).Limit(10).ToList();
+ var t333 = select.Where(a => a.testFieldBool == false && a.Id > 0).Limit(10).ToList();
+ var t444 = select.Where(a => !a.testFieldBool && a.Id > 0).Limit(10).ToList();
+ var t555 = select.Where(a => a.testFieldBool && a.Id > 0).Limit(10).ToList();
+
+ var t1111 = select.Where(a => a.testFieldBoolNullable == true && a.Id > 0).Limit(10).ToList();
+ var t2222 = select.Where(a => a.testFieldBoolNullable != true && a.Id > 0).Limit(10).ToList();
+ var t3333 = select.Where(a => a.testFieldBoolNullable == false && a.Id > 0).Limit(10).ToList();
+ var t4444 = select.Where(a => !a.testFieldBoolNullable.Value && a.Id > 0).Limit(10).ToList();
+ var t5555 = select.Where(a => a.testFieldBoolNullable.Value && a.Id > 0).Limit(10).ToList();
+
+ var t11111 = select.Where(a => a.testFieldBool == true && a.Id > 0 && a.testFieldBool == true).Limit(10).ToList();
+ var t22222 = select.Where(a => a.testFieldBool != true && a.Id > 0 && a.testFieldBool != true).Limit(10).ToList();
+ var t33333 = select.Where(a => a.testFieldBool == false && a.Id > 0 && a.testFieldBool == false).Limit(10).ToList();
+ var t44444 = select.Where(a => !a.testFieldBool && a.Id > 0 && !a.testFieldBool).Limit(10).ToList();
+ var t55555 = select.Where(a => a.testFieldBool && a.Id > 0 && a.testFieldBool).Limit(10).ToList();
+
+ var t111111 = select.Where(a => a.testFieldBoolNullable == true && a.Id > 0 && a.testFieldBoolNullable == true).Limit(10).ToList();
+ var t222222 = select.Where(a => a.testFieldBoolNullable != true && a.Id > 0 && a.testFieldBoolNullable != true).Limit(10).ToList();
+ var t333333 = select.Where(a => a.testFieldBoolNullable == false && a.Id > 0 && a.testFieldBoolNullable == false).Limit(10).ToList();
+ var t444444 = select.Where(a => !a.testFieldBoolNullable.Value && a.Id > 0 && !a.testFieldBoolNullable.Value).Limit(10).ToList();
+ var t555555 = select.Where(a => a.testFieldBoolNullable.Value && a.Id > 0 && a.testFieldBoolNullable.Value).Limit(10).ToList();
}
[Fact]
diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerExpression/OtherTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerExpression/OtherTest.cs
index 53427c37..7a21e3a0 100644
--- a/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerExpression/OtherTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerExpression/OtherTest.cs
@@ -50,6 +50,30 @@ namespace FreeSql.Tests.SqlServerExpression
var t33 = select.Where(a => a.testFieldBoolNullable == false).ToList();
var t44 = select.Where(a => !a.testFieldBoolNullable.Value).ToList();
var t55 = select.Where(a => a.testFieldBoolNullable.Value).ToList();
+
+ var t111 = select.Where(a => a.testFieldBool == true && a.Id > 0).ToList();
+ var t222 = select.Where(a => a.testFieldBool != true && a.Id > 0).ToList();
+ var t333 = select.Where(a => a.testFieldBool == false && a.Id > 0).ToList();
+ var t444 = select.Where(a => !a.testFieldBool && a.Id > 0).ToList();
+ var t555 = select.Where(a => a.testFieldBool && a.Id > 0).ToList();
+
+ var t1111 = select.Where(a => a.testFieldBoolNullable == true && a.Id > 0).ToList();
+ var t2222 = select.Where(a => a.testFieldBoolNullable != true && a.Id > 0).ToList();
+ var t3333 = select.Where(a => a.testFieldBoolNullable == false && a.Id > 0).ToList();
+ var t4444 = select.Where(a => !a.testFieldBoolNullable.Value && a.Id > 0).ToList();
+ var t5555 = select.Where(a => a.testFieldBoolNullable.Value && a.Id > 0).ToList();
+
+ var t11111 = select.Where(a => a.testFieldBool == true && a.Id > 0 && a.testFieldBool == true).ToList();
+ var t22222 = select.Where(a => a.testFieldBool != true && a.Id > 0 && a.testFieldBool != true).ToList();
+ var t33333 = select.Where(a => a.testFieldBool == false && a.Id > 0 && a.testFieldBool == false).ToList();
+ var t44444 = select.Where(a => !a.testFieldBool && a.Id > 0 && !a.testFieldBool).ToList();
+ var t55555 = select.Where(a => a.testFieldBool && a.Id > 0 && a.testFieldBool).ToList();
+
+ var t111111 = select.Where(a => a.testFieldBoolNullable == true && a.Id > 0 && a.testFieldBoolNullable == true).ToList();
+ var t222222 = select.Where(a => a.testFieldBoolNullable != true && a.Id > 0 && a.testFieldBoolNullable != true).ToList();
+ var t333333 = select.Where(a => a.testFieldBoolNullable == false && a.Id > 0 && a.testFieldBoolNullable == false).ToList();
+ var t444444 = select.Where(a => !a.testFieldBoolNullable.Value && a.Id > 0 && !a.testFieldBoolNullable.Value).ToList();
+ var t555555 = select.Where(a => a.testFieldBoolNullable.Value && a.Id > 0 && a.testFieldBoolNullable.Value).ToList();
}
[Fact]
diff --git a/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteExpression/OtherTest.cs b/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteExpression/OtherTest.cs
index 3e2c3e53..3276034d 100644
--- a/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteExpression/OtherTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteExpression/OtherTest.cs
@@ -45,6 +45,30 @@ namespace FreeSql.Tests.SqliteExpression
var t33 = select.Where(a => a.BoolNullable == false).ToList();
var t44 = select.Where(a => !a.BoolNullable.Value).ToList();
var t55 = select.Where(a => a.BoolNullable.Value).ToList();
+
+ var t111 = select.Where(a => a.Bool == true && a.Id > 0).ToList();
+ var t222 = select.Where(a => a.Bool != true && a.Id > 0).ToList();
+ var t333 = select.Where(a => a.Bool == false && a.Id > 0).ToList();
+ var t444 = select.Where(a => !a.Bool && a.Id > 0).ToList();
+ var t555 = select.Where(a => a.Bool && a.Id > 0).ToList();
+
+ var t1111 = select.Where(a => a.BoolNullable == true && a.Id > 0).ToList();
+ var t2222 = select.Where(a => a.BoolNullable != true && a.Id > 0).ToList();
+ var t3333 = select.Where(a => a.BoolNullable == false && a.Id > 0).ToList();
+ var t4444 = select.Where(a => !a.BoolNullable.Value && a.Id > 0).ToList();
+ var t5555 = select.Where(a => a.BoolNullable.Value && a.Id > 0).ToList();
+
+ var t11111 = select.Where(a => a.Bool == true && a.Id > 0 && a.Bool == true).ToList();
+ var t22222 = select.Where(a => a.Bool != true && a.Id > 0 && a.Bool != true).ToList();
+ var t33333 = select.Where(a => a.Bool == false && a.Id > 0 && a.Bool == false).ToList();
+ var t44444 = select.Where(a => !a.Bool && a.Id > 0 && !a.Bool).ToList();
+ var t55555 = select.Where(a => a.Bool && a.Id > 0 && a.Bool).ToList();
+
+ var t111111 = select.Where(a => a.BoolNullable == true && a.Id > 0 && a.BoolNullable == true).ToList();
+ var t222222 = select.Where(a => a.BoolNullable != true && a.Id > 0 && a.BoolNullable != true).ToList();
+ var t333333 = select.Where(a => a.BoolNullable == false && a.Id > 0 && a.BoolNullable == false).ToList();
+ var t444444 = select.Where(a => !a.BoolNullable.Value && a.Id > 0 && !a.BoolNullable.Value).ToList();
+ var t555555 = select.Where(a => a.BoolNullable.Value && a.Id > 0 && a.BoolNullable.Value).ToList();
}
[Fact]
diff --git a/FreeSql/Internal/CommonExpression.cs b/FreeSql/Internal/CommonExpression.cs
index 85720257..8e9bbe8e 100644
--- a/FreeSql/Internal/CommonExpression.cs
+++ b/FreeSql/Internal/CommonExpression.cs
@@ -420,7 +420,7 @@ namespace FreeSql.Internal
var left = ExpressionLambdaToSql(leftExp, tsc);
var leftMapColumn = SearchColumnByField(tsc._tables, tsc.currentTable, left);
- var isLeftMapType = leftMapColumn != null && (leftMapColumn.Attribute.MapType != rightExp.Type || leftMapColumn.CsType != rightExp.Type);
+ var isLeftMapType = leftMapColumn != null && new[] { "AND", "OR" }.Contains(oper) == false && (leftMapColumn.Attribute.MapType != rightExp.Type || leftMapColumn.CsType != rightExp.Type);
ColumnInfo rightMapColumn = null;
var isRightMapType = false;
if (isLeftMapType) tsc.mapType = leftMapColumn.Attribute.MapType;
@@ -435,7 +435,7 @@ namespace FreeSql.Internal
if (leftMapColumn == null)
{
rightMapColumn = SearchColumnByField(tsc._tables, tsc.currentTable, right);
- isRightMapType = rightMapColumn != null && (rightMapColumn.Attribute.MapType != leftExp.Type || rightMapColumn.CsType != leftExp.Type);
+ isRightMapType = rightMapColumn != null && new[] { "AND", "OR" }.Contains(oper) == false && (rightMapColumn.Attribute.MapType != leftExp.Type || rightMapColumn.CsType != leftExp.Type);
if (isRightMapType)
{
tsc.mapType = rightMapColumn.Attribute.MapType;
@@ -485,8 +485,10 @@ namespace FreeSql.Internal
break;
case "AND":
case "OR":
- left = GetBoolString(left);
- right = GetBoolString(right);
+ if (leftMapColumn != null) left = $"{left} = {formatSql(true, null)}";
+ else left = GetBoolString(left);
+ if (rightMapColumn != null) right = $"{right} = {formatSql(true, null)}";
+ else right = GetBoolString(right);
break;
}
tsc.mapType = null;