mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 04:18:16 +08:00
- 优化 兼容不同数据库 bool 的表达式解析
This commit is contained in:
@ -18,6 +18,21 @@ namespace FreeSql.Tests.SqlServerExpression {
|
||||
|
||||
ISelect<TableAllType> select => _sqlserverFixture.SqlServer.Select<TableAllType>();
|
||||
|
||||
[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 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();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Array() {
|
||||
IEnumerable<int> testlinqlist = new List<int>(new[] { 1, 2, 3 });
|
||||
@ -25,26 +40,26 @@ namespace FreeSql.Tests.SqlServerExpression {
|
||||
|
||||
//in not in
|
||||
var sql111 = select.Where(a => new[] { 1, 2, 3 }.Contains(a.testFieldInt)).ToList();
|
||||
//var sql112 = select.Where(a => new[] { 1, 2, 3 }.Contains(a.testFieldInt) == false).ToList();
|
||||
var sql112 = select.Where(a => new[] { 1, 2, 3 }.Contains(a.testFieldInt) == false).ToList();
|
||||
var sql113 = select.Where(a => !new[] { 1, 2, 3 }.Contains(a.testFieldInt)).ToList();
|
||||
|
||||
var inarray = new[] { 1, 2, 3 };
|
||||
var sql1111 = select.Where(a => inarray.Contains(a.testFieldInt)).ToList();
|
||||
//var sql1122 = select.Where(a => inarray.Contains(a.testFieldInt) == false).ToList();
|
||||
var sql1122 = select.Where(a => inarray.Contains(a.testFieldInt) == false).ToList();
|
||||
var sql1133 = select.Where(a => !inarray.Contains(a.testFieldInt)).ToList();
|
||||
|
||||
//in not in
|
||||
var sql11111 = select.Where(a => new List<int>() { 1, 2, 3 }.Contains(a.testFieldInt)).ToList();
|
||||
//var sql11222 = select.Where(a => new List<int>() { 1, 2, 3 }.Contains(a.testFieldInt) == false).ToList();
|
||||
var sql11222 = select.Where(a => new List<int>() { 1, 2, 3 }.Contains(a.testFieldInt) == false).ToList();
|
||||
var sql11333 = select.Where(a => !new List<int>() { 1, 2, 3 }.Contains(a.testFieldInt)).ToList();
|
||||
|
||||
var sql11111a = select.Where(a => new List<int>(new[] { 1, 2, 3 }).Contains(a.testFieldInt)).ToList();
|
||||
//var sql11222b = select.Where(a => new List<int>(new[] { 1, 2, 3 }).Contains(a.testFieldInt) == false).ToList();
|
||||
var sql11222b = select.Where(a => new List<int>(new[] { 1, 2, 3 }).Contains(a.testFieldInt) == false).ToList();
|
||||
var sql11333c = select.Where(a => !new List<int>(new[] { 1, 2, 3 }).Contains(a.testFieldInt)).ToList();
|
||||
|
||||
var inarray2 = new List<int>() { 1, 2, 3 };
|
||||
var sql111111 = select.Where(a => inarray.Contains(a.testFieldInt)).ToList();
|
||||
//var sql112222 = select.Where(a => inarray.Contains(a.testFieldInt) == false).ToList();
|
||||
var sql112222 = select.Where(a => inarray.Contains(a.testFieldInt) == false).ToList();
|
||||
var sql113333 = select.Where(a => !inarray.Contains(a.testFieldInt)).ToList();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user