From 66f123fbed1a561549facf6a7c8ab222f6a00171 Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Fri, 14 Aug 2020 15:30:58 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BC=98=E5=8C=96=20WhereDynamic=20?= =?UTF-8?q?=E4=BC=A0=E5=85=A5=E9=9B=86=E5=90=88=E5=AF=B9=E8=B1=A1=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E9=80=BB=E8=BE=91=20OR=20=E6=8D=A2=E4=B8=BA=20IN?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.DbContext/FreeSql.DbContext.xml | 16 -------------- .../MySqlConnector/Curd/MySqlDeleteTest.cs | 8 +++---- .../MySqlConnector/Curd/MySqlUpdateTest.cs | 8 +++---- .../Dameng/Curd/DamengDeleteTest.cs | 8 +++---- .../Dameng/Curd/DamengUpdateTest.cs | 8 +++---- .../Default/Curd/OdbcDeleteTest.cs | 8 +++---- .../Default/Curd/OdbcUpdateTest.cs | 8 +++---- .../KingbaseES/Curd/KingbaseESDeleteTest.cs | 8 +++---- .../KingbaseES/Curd/KingbaseESUpdateTest.cs | 8 +++---- .../MySql/Curd/MySqlDeleteTest.cs | 8 +++---- .../MySql/Curd/MySqlUpdateTest.cs | 8 +++---- .../Oracle/Curd/OracleDeleteTest.cs | 8 +++---- .../Oracle/Curd/OracleUpdateTest.cs | 8 +++---- .../PostgreSQL/Curd/PostgreSQLDeleteTest.cs | 8 +++---- .../PostgreSQL/Curd/PostgreSQLUpdateTest.cs | 8 +++---- .../SqlServer/Curd/SqlServerDeleteTest.cs | 8 +++---- .../SqlServer/Curd/SqlServerUpdateTest.cs | 8 +++---- .../Dameng/Curd/DamengDeleteTest.cs | 8 +++---- .../Dameng/Curd/DamengUpdateTest.cs | 8 +++---- .../MsAccess/Curd/MsAccessDeleteTest.cs | 8 +++---- .../MsAccess/Curd/MsAccessUpdateTest.cs | 8 +++---- .../MySql/Curd/MySqlDeleteTest.cs | 8 +++---- .../MySql/Curd/MySqlUpdateTest.cs | 8 +++---- .../Oracle/Curd/OracleDeleteTest.cs | 8 +++---- .../Oracle/Curd/OracleUpdateTest.cs | 8 +++---- .../PostgreSQL/Curd/PostgreSQLDeleteTest.cs | 8 +++---- .../PostgreSQL/Curd/PostgreSQLUpdateTest.cs | 8 +++---- .../ShenTong/Curd/ShenTongDeleteTest.cs | 8 +++---- .../ShenTong/Curd/ShenTongUpdateTest.cs | 8 +++---- .../SqlServer/Curd/SqlServerDeleteTest.cs | 8 +++---- .../SqlServer/Curd/SqlServerUpdateTest.cs | 8 +++---- .../Sqlite/Curd/SqliteDeleteTest.cs | 8 +++---- .../Sqlite/Curd/SqliteUpdateTest.cs | 8 +++---- FreeSql/Internal/CommonUtils.cs | 22 +++++++++++++++++++ 34 files changed, 150 insertions(+), 144 deletions(-) diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 2acb6679..5ca74890 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -130,13 +130,6 @@ 清空状态数据 - - - 根据 lambda 条件删除数据 - - - - 添加 @@ -527,14 +520,5 @@ - - - 批量注入 Repository,可以参考代码自行调整 - - - - - - diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlDeleteTest.cs index 1d711cc4..2954f27e 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlDeleteTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlDeleteTest.cs @@ -26,13 +26,13 @@ namespace FreeSql.Tests.MySqlConnector { Assert.Null(g.mysql.Delete().ToSql()); var sql = g.mysql.Delete(new[] { 1, 2 }).ToSql(); - Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` = 1 OR `Id` = 2)", sql); + Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` IN (1,2))", sql); sql = g.mysql.Delete(new Topic { Id = 1, Title = "test" }).ToSql(); Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` = 1)", sql); sql = g.mysql.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).ToSql(); - Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` = 1 OR `Id` = 2)", sql); + Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` IN (1,2))", sql); sql = g.mysql.Delete(new { id = 1 }).ToSql(); Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` = 1)", sql); @@ -89,13 +89,13 @@ namespace FreeSql.Tests.MySqlConnector { Assert.Null(g.mysql.Delete().ToSql()); var sql = g.mysql.Delete(new[] { 1, 2 }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` = 1 OR `Id` = 2)", sql); + Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` IN (1,2))", sql); sql = g.mysql.Delete(new Topic { Id = 1, Title = "test" }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` = 1)", sql); sql = g.mysql.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` = 1 OR `Id` = 2)", sql); + Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` IN (1,2))", sql); sql = g.mysql.Delete(new { id = 1 }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` = 1)", sql); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlUpdateTest.cs index 646a508b..72ced82d 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlUpdateTest.cs @@ -32,9 +32,9 @@ namespace FreeSql.Tests.MySqlConnector public void Dywhere() { Assert.Null(g.mysql.Update().ToSql()); - Assert.Equal("UPDATE `tb_topic` SET title='test' \r\nWHERE (`Id` = 1 OR `Id` = 2)", g.mysql.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); + Assert.Equal("UPDATE `tb_topic` SET title='test' \r\nWHERE (`Id` IN (1,2))", g.mysql.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); Assert.Equal("UPDATE `tb_topic` SET title='test1' \r\nWHERE (`Id` = 1)", g.mysql.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").ToSql()); - Assert.Equal("UPDATE `tb_topic` SET title='test1' \r\nWHERE (`Id` = 1 OR `Id` = 2)", g.mysql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); + Assert.Equal("UPDATE `tb_topic` SET title='test1' \r\nWHERE (`Id` IN (1,2))", g.mysql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); Assert.Equal("UPDATE `tb_topic` SET title='test1' \r\nWHERE (`Id` = 1)", g.mysql.Update(new { id = 1 }).SetRaw("title='test1'").ToSql()); } @@ -370,9 +370,9 @@ limit 0,1", fsql.Select().Where(a => a.id == item.id && a.status == (a public void AsTable() { Assert.Null(g.mysql.Update().ToSql()); - Assert.Equal("UPDATE `tb_topicAsTable` SET title='test' \r\nWHERE (`Id` = 1 OR `Id` = 2)", g.mysql.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE `tb_topicAsTable` SET title='test' \r\nWHERE (`Id` IN (1,2))", g.mysql.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE `tb_topicAsTable` SET title='test1' \r\nWHERE (`Id` = 1)", g.mysql.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); - Assert.Equal("UPDATE `tb_topicAsTable` SET title='test1' \r\nWHERE (`Id` = 1 OR `Id` = 2)", g.mysql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE `tb_topicAsTable` SET title='test1' \r\nWHERE (`Id` IN (1,2))", g.mysql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE `tb_topicAsTable` SET title='test1' \r\nWHERE (`Id` = 1)", g.mysql.Update(new { id = 1 }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); } } diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengDeleteTest.cs index d424fe0e..d83e78ee 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengDeleteTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengDeleteTest.cs @@ -27,13 +27,13 @@ namespace FreeSql.Tests.Odbc.Dameng { Assert.Null(g.dameng.Delete().ToSql()); var sql = g.dameng.Delete(new[] { 1, 2 }).ToSql(); - Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" IN (1,2))", sql); sql = g.dameng.Delete(new Topic { Id = 1, Title = "test" }).ToSql(); Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1)", sql); sql = g.dameng.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).ToSql(); - Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" IN (1,2))", sql); sql = g.dameng.Delete(new { id = 1 }).ToSql(); Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1)", sql); @@ -91,13 +91,13 @@ namespace FreeSql.Tests.Odbc.Dameng { Assert.Null(g.dameng.Delete().ToSql()); var sql = g.dameng.Delete(new[] { 1, 2 }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" IN (1,2))", sql); sql = g.dameng.Delete(new Topic { Id = 1, Title = "test" }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1)", sql); sql = g.dameng.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" IN (1,2))", sql); sql = g.dameng.Delete(new { id = 1 }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1)", sql); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengUpdateTest.cs index 8375a89b..93b22780 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengUpdateTest.cs @@ -24,9 +24,9 @@ namespace FreeSql.Tests.Odbc.Dameng public void Dywhere() { Assert.Null(g.dameng.Update().ToSql()); - Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.dameng.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); + Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test' \r\nWHERE (\"ID\" IN (1,2))", g.dameng.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.dameng.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").ToSql()); - Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.dameng.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); + Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" IN (1,2))", g.dameng.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.dameng.Update(new { id = 1 }).SetRaw("title='test1'").ToSql()); } @@ -181,9 +181,9 @@ namespace FreeSql.Tests.Odbc.Dameng public void AsTable() { Assert.Null(g.dameng.Update().ToSql()); - Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.dameng.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test' \r\nWHERE (\"ID\" IN (1,2))", g.dameng.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.dameng.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); - Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.dameng.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" IN (1,2))", g.dameng.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.dameng.Update(new { id = 1 }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); } } diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcDeleteTest.cs index 65ce7624..7bb38d8c 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcDeleteTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcDeleteTest.cs @@ -26,13 +26,13 @@ namespace FreeSql.Tests.Odbc.Default { Assert.Null(g.odbc.Delete().ToSql()); var sql = g.odbc.Delete(new[] { 1, 2 }).ToSql(); - Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] = 1 OR [Id] = 2)", sql); + Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] IN (1,2))", sql); sql = g.odbc.Delete(new Topic { Id = 1, Title = "test" }).ToSql(); Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] = 1)", sql); sql = g.odbc.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).ToSql(); - Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] = 1 OR [Id] = 2)", sql); + Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] IN (1,2))", sql); sql = g.odbc.Delete(new { id = 1 }).ToSql(); Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] = 1)", sql); @@ -83,13 +83,13 @@ namespace FreeSql.Tests.Odbc.Default { Assert.Null(g.odbc.Delete().ToSql()); var sql = g.odbc.Delete(new[] { 1, 2 }).AsTable(a => "tb_topic22211AsTable").ToSql(); - Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] = 1 OR [Id] = 2)", sql); + Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] IN (1,2))", sql); sql = g.odbc.Delete(new Topic { Id = 1, Title = "test" }).AsTable(a => "tb_topic22211AsTable").ToSql(); Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] = 1)", sql); sql = g.odbc.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).AsTable(a => "tb_topic22211AsTable").ToSql(); - Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] = 1 OR [Id] = 2)", sql); + Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] IN (1,2))", sql); sql = g.odbc.Delete(new { id = 1 }).AsTable(a => "tb_topic22211AsTable").ToSql(); Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] = 1)", sql); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcUpdateTest.cs index 77a5e25e..cc979c42 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcUpdateTest.cs @@ -26,9 +26,9 @@ namespace FreeSql.Tests.Odbc.Default public void Dywhere() { Assert.Null(g.odbc.Update().ToSql()); - Assert.Equal("UPDATE [tb_topic] SET title='test' \r\nWHERE ([Id] = 1 OR [Id] = 2)", g.odbc.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); + Assert.Equal("UPDATE [tb_topic] SET title='test' \r\nWHERE ([Id] IN (1,2))", g.odbc.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); Assert.Equal("UPDATE [tb_topic] SET title='test1' \r\nWHERE ([Id] = 1)", g.odbc.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").ToSql()); - Assert.Equal("UPDATE [tb_topic] SET title='test1' \r\nWHERE ([Id] = 1 OR [Id] = 2)", g.odbc.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); + Assert.Equal("UPDATE [tb_topic] SET title='test1' \r\nWHERE ([Id] IN (1,2))", g.odbc.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); Assert.Equal("UPDATE [tb_topic] SET title='test1' \r\nWHERE ([Id] = 1)", g.odbc.Update(new { id = 1 }).SetRaw("title='test1'").ToSql()); } @@ -175,9 +175,9 @@ namespace FreeSql.Tests.Odbc.Default public void AsTable() { Assert.Null(g.odbc.Update().ToSql()); - Assert.Equal("UPDATE [tb_topicAsTable] SET title='test' \r\nWHERE ([Id] = 1 OR [Id] = 2)", g.odbc.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE [tb_topicAsTable] SET title='test' \r\nWHERE ([Id] IN (1,2))", g.odbc.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE [tb_topicAsTable] SET title='test1' \r\nWHERE ([Id] = 1)", g.odbc.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); - Assert.Equal("UPDATE [tb_topicAsTable] SET title='test1' \r\nWHERE ([Id] = 1 OR [Id] = 2)", g.odbc.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE [tb_topicAsTable] SET title='test1' \r\nWHERE ([Id] IN (1,2))", g.odbc.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE [tb_topicAsTable] SET title='test1' \r\nWHERE ([Id] = 1)", g.odbc.Update(new { id = 1 }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); } } diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESDeleteTest.cs index 40ea21d9..a9f8498e 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESDeleteTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESDeleteTest.cs @@ -27,13 +27,13 @@ namespace FreeSql.Tests.Odbc.KingbaseES { Assert.Null(g.kingbaseES.Delete().ToSql()); var sql = g.kingbaseES.Delete(new[] { 1, 2 }).ToSql(); - Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" IN (1,2))", sql); sql = g.kingbaseES.Delete(new Topic { Id = 1, Title = "test" }).ToSql(); Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1)", sql); sql = g.kingbaseES.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).ToSql(); - Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" IN (1,2))", sql); sql = g.kingbaseES.Delete(new { id = 1 }).ToSql(); Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1)", sql); @@ -91,13 +91,13 @@ namespace FreeSql.Tests.Odbc.KingbaseES { Assert.Null(g.kingbaseES.Delete().ToSql()); var sql = g.kingbaseES.Delete(new[] { 1, 2 }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" IN (1,2))", sql); sql = g.kingbaseES.Delete(new Topic { Id = 1, Title = "test" }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1)", sql); sql = g.kingbaseES.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" IN (1,2))", sql); sql = g.kingbaseES.Delete(new { id = 1 }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1)", sql); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESUpdateTest.cs index d1c5cd91..4690b744 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESUpdateTest.cs @@ -24,9 +24,9 @@ namespace FreeSql.Tests.Odbc.KingbaseES public void Dywhere() { Assert.Null(g.kingbaseES.Update().ToSql()); - Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.kingbaseES.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); + Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test' \r\nWHERE (\"ID\" IN (1,2))", g.kingbaseES.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.kingbaseES.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").ToSql()); - Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.kingbaseES.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); + Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" IN (1,2))", g.kingbaseES.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.kingbaseES.Update(new { id = 1 }).SetRaw("title='test1'").ToSql()); } @@ -181,9 +181,9 @@ namespace FreeSql.Tests.Odbc.KingbaseES public void AsTable() { Assert.Null(g.kingbaseES.Update().ToSql()); - Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.kingbaseES.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test' \r\nWHERE (\"ID\" IN (1,2))", g.kingbaseES.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.kingbaseES.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); - Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.kingbaseES.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" IN (1,2))", g.kingbaseES.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.kingbaseES.Update(new { id = 1 }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); } } diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlDeleteTest.cs index cbc3303a..f4b3a11d 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlDeleteTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlDeleteTest.cs @@ -26,13 +26,13 @@ namespace FreeSql.Tests.Odbc.MySql { Assert.Null(g.mysql.Delete().ToSql()); var sql = g.mysql.Delete(new[] { 1, 2 }).ToSql(); - Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` = 1 OR `Id` = 2)", sql); + Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` IN (1,2))", sql); sql = g.mysql.Delete(new Topic { Id = 1, Title = "test" }).ToSql(); Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` = 1)", sql); sql = g.mysql.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).ToSql(); - Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` = 1 OR `Id` = 2)", sql); + Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` IN (1,2))", sql); sql = g.mysql.Delete(new { id = 1 }).ToSql(); Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` = 1)", sql); @@ -89,13 +89,13 @@ namespace FreeSql.Tests.Odbc.MySql { Assert.Null(g.mysql.Delete().ToSql()); var sql = g.mysql.Delete(new[] { 1, 2 }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` = 1 OR `Id` = 2)", sql); + Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` IN (1,2))", sql); sql = g.mysql.Delete(new Topic { Id = 1, Title = "test" }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` = 1)", sql); sql = g.mysql.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` = 1 OR `Id` = 2)", sql); + Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` IN (1,2))", sql); sql = g.mysql.Delete(new { id = 1 }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` = 1)", sql); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlUpdateTest.cs index 0ea494df..90ed0971 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlUpdateTest.cs @@ -32,9 +32,9 @@ namespace FreeSql.Tests.Odbc.MySql public void Dywhere() { Assert.Null(g.mysql.Update().ToSql()); - Assert.Equal("UPDATE `tb_topic` SET title='test' \r\nWHERE (`Id` = 1 OR `Id` = 2)", g.mysql.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); + Assert.Equal("UPDATE `tb_topic` SET title='test' \r\nWHERE (`Id` IN (1,2))", g.mysql.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); Assert.Equal("UPDATE `tb_topic` SET title='test1' \r\nWHERE (`Id` = 1)", g.mysql.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").ToSql()); - Assert.Equal("UPDATE `tb_topic` SET title='test1' \r\nWHERE (`Id` = 1 OR `Id` = 2)", g.mysql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); + Assert.Equal("UPDATE `tb_topic` SET title='test1' \r\nWHERE (`Id` IN (1,2))", g.mysql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); Assert.Equal("UPDATE `tb_topic` SET title='test1' \r\nWHERE (`Id` = 1)", g.mysql.Update(new { id = 1 }).SetRaw("title='test1'").ToSql()); } @@ -311,9 +311,9 @@ limit 0,1", fsql.Select().Where(a => a.id == item.id && a.status == (a public void AsTable() { Assert.Null(g.mysql.Update().ToSql()); - Assert.Equal("UPDATE `tb_topicAsTable` SET title='test' \r\nWHERE (`Id` = 1 OR `Id` = 2)", g.mysql.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE `tb_topicAsTable` SET title='test' \r\nWHERE (`Id` IN (1,2))", g.mysql.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE `tb_topicAsTable` SET title='test1' \r\nWHERE (`Id` = 1)", g.mysql.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); - Assert.Equal("UPDATE `tb_topicAsTable` SET title='test1' \r\nWHERE (`Id` = 1 OR `Id` = 2)", g.mysql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE `tb_topicAsTable` SET title='test1' \r\nWHERE (`Id` IN (1,2))", g.mysql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE `tb_topicAsTable` SET title='test1' \r\nWHERE (`Id` = 1)", g.mysql.Update(new { id = 1 }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); } } diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleDeleteTest.cs index be99ef40..605f7759 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleDeleteTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleDeleteTest.cs @@ -27,13 +27,13 @@ namespace FreeSql.Tests.Odbc.Oracle { Assert.Null(g.oracle.Delete().ToSql()); var sql = g.oracle.Delete(new[] { 1, 2 }).ToSql(); - Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" IN (1,2))", sql); sql = g.oracle.Delete(new Topic { Id = 1, Title = "test" }).ToSql(); Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1)", sql); sql = g.oracle.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).ToSql(); - Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" IN (1,2))", sql); sql = g.oracle.Delete(new { id = 1 }).ToSql(); Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1)", sql); @@ -91,13 +91,13 @@ namespace FreeSql.Tests.Odbc.Oracle { Assert.Null(g.oracle.Delete().ToSql()); var sql = g.oracle.Delete(new[] { 1, 2 }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" IN (1,2))", sql); sql = g.oracle.Delete(new Topic { Id = 1, Title = "test" }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1)", sql); sql = g.oracle.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" IN (1,2))", sql); sql = g.oracle.Delete(new { id = 1 }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1)", sql); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleUpdateTest.cs index be5869d3..13315f4b 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleUpdateTest.cs @@ -24,9 +24,9 @@ namespace FreeSql.Tests.Odbc.Oracle public void Dywhere() { Assert.Null(g.oracle.Update().ToSql()); - Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.oracle.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); + Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test' \r\nWHERE (\"ID\" IN (1,2))", g.oracle.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.oracle.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").ToSql()); - Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.oracle.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); + Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" IN (1,2))", g.oracle.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.oracle.Update(new { id = 1 }).SetRaw("title='test1'").ToSql()); } @@ -182,9 +182,9 @@ namespace FreeSql.Tests.Odbc.Oracle public void AsTable() { Assert.Null(g.oracle.Update().ToSql()); - Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.oracle.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test' \r\nWHERE (\"ID\" IN (1,2))", g.oracle.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.oracle.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); - Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.oracle.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" IN (1,2))", g.oracle.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.oracle.Update(new { id = 1 }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); } } diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLDeleteTest.cs index 1378d0d9..7b71cf0b 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLDeleteTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLDeleteTest.cs @@ -27,13 +27,13 @@ namespace FreeSql.Tests.Odbc.PostgreSQL { Assert.Null(g.pgsql.Delete().ToSql()); var sql = g.pgsql.Delete(new[] { 1, 2 }).ToSql(); - Assert.Equal("DELETE FROM \"tb_topic_del\" WHERE (\"id\" = 1 OR \"id\" = 2)", sql); + Assert.Equal("DELETE FROM \"tb_topic_del\" WHERE (\"id\" IN (1,2))", sql); sql = g.pgsql.Delete(new Topic { Id = 1, Title = "test" }).ToSql(); Assert.Equal("DELETE FROM \"tb_topic_del\" WHERE (\"id\" = 1)", sql); sql = g.pgsql.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).ToSql(); - Assert.Equal("DELETE FROM \"tb_topic_del\" WHERE (\"id\" = 1 OR \"id\" = 2)", sql); + Assert.Equal("DELETE FROM \"tb_topic_del\" WHERE (\"id\" IN (1,2))", sql); sql = g.pgsql.Delete(new { id = 1 }).ToSql(); Assert.Equal("DELETE FROM \"tb_topic_del\" WHERE (\"id\" = 1)", sql); @@ -90,13 +90,13 @@ namespace FreeSql.Tests.Odbc.PostgreSQL { Assert.Null(g.pgsql.Delete().ToSql()); var sql = g.pgsql.Delete(new[] { 1, 2 }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"topicastable\" WHERE (\"id\" = 1 OR \"id\" = 2)", sql); + Assert.Equal("DELETE FROM \"topicastable\" WHERE (\"id\" IN (1,2))", sql); sql = g.pgsql.Delete(new Topic { Id = 1, Title = "test" }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"topicastable\" WHERE (\"id\" = 1)", sql); sql = g.pgsql.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"topicastable\" WHERE (\"id\" = 1 OR \"id\" = 2)", sql); + Assert.Equal("DELETE FROM \"topicastable\" WHERE (\"id\" IN (1,2))", sql); sql = g.pgsql.Delete(new { id = 1 }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"topicastable\" WHERE (\"id\" = 1)", sql); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLUpdateTest.cs index 165f4b1b..0920fa3e 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLUpdateTest.cs @@ -25,9 +25,9 @@ namespace FreeSql.Tests.Odbc.PostgreSQL public void Dywhere() { Assert.Null(g.pgsql.Update().ToSql()); - Assert.Equal("UPDATE \"tb_topic\" SET title='test' \r\nWHERE (\"id\" = 1 OR \"id\" = 2)", g.pgsql.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); + Assert.Equal("UPDATE \"tb_topic\" SET title='test' \r\nWHERE (\"id\" IN (1,2))", g.pgsql.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); Assert.Equal("UPDATE \"tb_topic\" SET title='test1' \r\nWHERE (\"id\" = 1)", g.pgsql.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").ToSql()); - Assert.Equal("UPDATE \"tb_topic\" SET title='test1' \r\nWHERE (\"id\" = 1 OR \"id\" = 2)", g.pgsql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); + Assert.Equal("UPDATE \"tb_topic\" SET title='test1' \r\nWHERE (\"id\" IN (1,2))", g.pgsql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); Assert.Equal("UPDATE \"tb_topic\" SET title='test1' \r\nWHERE (\"id\" = 1)", g.pgsql.Update(new { id = 1 }).SetRaw("title='test1'").ToSql()); } @@ -176,9 +176,9 @@ namespace FreeSql.Tests.Odbc.PostgreSQL public void AsTable() { Assert.Null(g.pgsql.Update().ToSql()); - Assert.Equal("UPDATE \"tb_topicastable\" SET title='test' \r\nWHERE (\"id\" = 1 OR \"id\" = 2)", g.pgsql.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"tb_topicastable\" SET title='test' \r\nWHERE (\"id\" IN (1,2))", g.pgsql.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"tb_topicastable\" SET title='test1' \r\nWHERE (\"id\" = 1)", g.pgsql.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); - Assert.Equal("UPDATE \"tb_topicastable\" SET title='test1' \r\nWHERE (\"id\" = 1 OR \"id\" = 2)", g.pgsql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"tb_topicastable\" SET title='test1' \r\nWHERE (\"id\" IN (1,2))", g.pgsql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"tb_topicastable\" SET title='test1' \r\nWHERE (\"id\" = 1)", g.pgsql.Update(new { id = 1 }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); } } diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerDeleteTest.cs index 89802f75..b9a1670e 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerDeleteTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerDeleteTest.cs @@ -27,13 +27,13 @@ namespace FreeSql.Tests.Odbc.SqlServer { Assert.Null(g.sqlserver.Delete().ToSql()); var sql = g.sqlserver.Delete(new[] { 1, 2 }).ToSql(); - Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] = 1 OR [Id] = 2)", sql); + Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] IN (1,2))", sql); sql = g.sqlserver.Delete(new Topic { Id = 1, Title = "test" }).ToSql(); Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] = 1)", sql); sql = g.sqlserver.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).ToSql(); - Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] = 1 OR [Id] = 2)", sql); + Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] IN (1,2))", sql); sql = g.sqlserver.Delete(new { id = 1 }).ToSql(); Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] = 1)", sql); @@ -97,13 +97,13 @@ namespace FreeSql.Tests.Odbc.SqlServer { Assert.Null(g.sqlserver.Delete().ToSql()); var sql = g.sqlserver.Delete(new[] { 1, 2 }).AsTable(a => "tb_topic22211AsTable").ToSql(); - Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] = 1 OR [Id] = 2)", sql); + Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] IN (1,2))", sql); sql = g.sqlserver.Delete(new Topic { Id = 1, Title = "test" }).AsTable(a => "tb_topic22211AsTable").ToSql(); Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] = 1)", sql); sql = g.sqlserver.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).AsTable(a => "tb_topic22211AsTable").ToSql(); - Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] = 1 OR [Id] = 2)", sql); + Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] IN (1,2))", sql); sql = g.sqlserver.Delete(new { id = 1 }).AsTable(a => "tb_topic22211AsTable").ToSql(); Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] = 1)", sql); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerUpdateTest.cs index 237b8064..3349c4a0 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerUpdateTest.cs @@ -27,9 +27,9 @@ namespace FreeSql.Tests.Odbc.SqlServer public void Dywhere() { Assert.Null(g.sqlserver.Update().ToSql()); - Assert.Equal("UPDATE [tb_topic] SET title='test' \r\nWHERE ([Id] = 1 OR [Id] = 2)", g.sqlserver.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); + Assert.Equal("UPDATE [tb_topic] SET title='test' \r\nWHERE ([Id] IN (1,2))", g.sqlserver.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); Assert.Equal("UPDATE [tb_topic] SET title='test1' \r\nWHERE ([Id] = 1)", g.sqlserver.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").ToSql()); - Assert.Equal("UPDATE [tb_topic] SET title='test1' \r\nWHERE ([Id] = 1 OR [Id] = 2)", g.sqlserver.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); + Assert.Equal("UPDATE [tb_topic] SET title='test1' \r\nWHERE ([Id] IN (1,2))", g.sqlserver.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); Assert.Equal("UPDATE [tb_topic] SET title='test1' \r\nWHERE ([Id] = 1)", g.sqlserver.Update(new { id = 1 }).SetRaw("title='test1'").ToSql()); } @@ -190,9 +190,9 @@ namespace FreeSql.Tests.Odbc.SqlServer public void AsTable() { Assert.Null(g.sqlserver.Update().ToSql()); - Assert.Equal("UPDATE [tb_topicAsTable] SET title='test' \r\nWHERE ([Id] = 1 OR [Id] = 2)", g.sqlserver.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE [tb_topicAsTable] SET title='test' \r\nWHERE ([Id] IN (1,2))", g.sqlserver.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE [tb_topicAsTable] SET title='test1' \r\nWHERE ([Id] = 1)", g.sqlserver.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); - Assert.Equal("UPDATE [tb_topicAsTable] SET title='test1' \r\nWHERE ([Id] = 1 OR [Id] = 2)", g.sqlserver.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE [tb_topicAsTable] SET title='test1' \r\nWHERE ([Id] IN (1,2))", g.sqlserver.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE [tb_topicAsTable] SET title='test1' \r\nWHERE ([Id] = 1)", g.sqlserver.Update(new { id = 1 }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); } } diff --git a/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengDeleteTest.cs index 17ba3c06..46946215 100644 --- a/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengDeleteTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengDeleteTest.cs @@ -27,13 +27,13 @@ namespace FreeSql.Tests.Dameng { Assert.Null(g.dameng.Delete().ToSql()); var sql = g.dameng.Delete(new[] { 1, 2 }).ToSql(); - Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" IN (1,2))", sql); sql = g.dameng.Delete(new Topic { Id = 1, Title = "test" }).ToSql(); Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1)", sql); sql = g.dameng.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).ToSql(); - Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" IN (1,2))", sql); sql = g.dameng.Delete(new { id = 1 }).ToSql(); Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1)", sql); @@ -91,13 +91,13 @@ namespace FreeSql.Tests.Dameng { Assert.Null(g.dameng.Delete().ToSql()); var sql = g.dameng.Delete(new[] { 1, 2 }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" IN (1,2))", sql); sql = g.dameng.Delete(new Topic { Id = 1, Title = "test" }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1)", sql); sql = g.dameng.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" IN (1,2))", sql); sql = g.dameng.Delete(new { id = 1 }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1)", sql); diff --git a/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengUpdateTest.cs index 995d5c31..87dccf81 100644 --- a/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengUpdateTest.cs @@ -24,9 +24,9 @@ namespace FreeSql.Tests.Dameng public void Dywhere() { Assert.Null(g.dameng.Update().ToSql()); - Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.dameng.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); + Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test' \r\nWHERE (\"ID\" IN (1,2))", g.dameng.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.dameng.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").ToSql()); - Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.dameng.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); + Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" IN (1,2))", g.dameng.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.dameng.Update(new { id = 1 }).SetRaw("title='test1'").ToSql()); } @@ -181,9 +181,9 @@ namespace FreeSql.Tests.Dameng public void AsTable() { Assert.Null(g.dameng.Update().ToSql()); - Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.dameng.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test' \r\nWHERE (\"ID\" IN (1,2))", g.dameng.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.dameng.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); - Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.dameng.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" IN (1,2))", g.dameng.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.dameng.Update(new { id = 1 }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); } } diff --git a/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessDeleteTest.cs index e2fca832..dedfc922 100644 --- a/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessDeleteTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessDeleteTest.cs @@ -27,13 +27,13 @@ namespace FreeSql.Tests.MsAccess { Assert.Null(g.msaccess.Delete().ToSql()); var sql = g.msaccess.Delete(new[] { 1, 2 }).ToSql(); - Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] = 1 OR [Id] = 2)", sql); + Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] IN (1,2))", sql); sql = g.msaccess.Delete(new Topic { Id = 1, Title = "test" }).ToSql(); Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] = 1)", sql); sql = g.msaccess.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).ToSql(); - Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] = 1 OR [Id] = 2)", sql); + Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] IN (1,2))", sql); sql = g.msaccess.Delete(new { id = 1 }).ToSql(); Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] = 1)", sql); @@ -91,13 +91,13 @@ namespace FreeSql.Tests.MsAccess { Assert.Null(g.msaccess.Delete().AsTable(a => "TopicAsTable").ToSql()); var sql = g.msaccess.Delete(new[] { 1, 2 }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM [TopicAsTable] WHERE ([Id] = 1 OR [Id] = 2)", sql); + Assert.Equal("DELETE FROM [TopicAsTable] WHERE ([Id] IN (1,2))", sql); sql = g.msaccess.Delete(new Topic { Id = 1, Title = "test" }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM [TopicAsTable] WHERE ([Id] = 1)", sql); sql = g.msaccess.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM [TopicAsTable] WHERE ([Id] = 1 OR [Id] = 2)", sql); + Assert.Equal("DELETE FROM [TopicAsTable] WHERE ([Id] IN (1,2))", sql); sql = g.msaccess.Delete(new { id = 1 }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM [TopicAsTable] WHERE ([Id] = 1)", sql); diff --git a/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessUpdateTest.cs index d493de00..5f52c6d0 100644 --- a/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessUpdateTest.cs @@ -26,9 +26,9 @@ namespace FreeSql.Tests.MsAccess public void Dywhere() { Assert.Null(g.msaccess.Update().ToSql()); - Assert.Equal("UPDATE [tb_topic] SET title='test' \r\nWHERE ([Id] = 1 OR [Id] = 2)", g.msaccess.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); + Assert.Equal("UPDATE [tb_topic] SET title='test' \r\nWHERE ([Id] IN (1,2))", g.msaccess.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); Assert.Equal("UPDATE [tb_topic] SET title='test1' \r\nWHERE ([Id] = 1)", g.msaccess.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").ToSql()); - Assert.Equal("UPDATE [tb_topic] SET title='test1' \r\nWHERE ([Id] = 1 OR [Id] = 2)", g.msaccess.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); + Assert.Equal("UPDATE [tb_topic] SET title='test1' \r\nWHERE ([Id] IN (1,2))", g.msaccess.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); Assert.Equal("UPDATE [tb_topic] SET title='test1' \r\nWHERE ([Id] = 1)", g.msaccess.Update(new { id = 1 }).SetRaw("title='test1'").ToSql()); } @@ -185,9 +185,9 @@ namespace FreeSql.Tests.MsAccess public void AsTable() { Assert.Null(g.msaccess.Update().ToSql()); - Assert.Equal("UPDATE [tb_topicAsTable] SET title='test' \r\nWHERE ([Id] = 1 OR [Id] = 2)", g.msaccess.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE [tb_topicAsTable] SET title='test' \r\nWHERE ([Id] IN (1,2))", g.msaccess.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE [tb_topicAsTable] SET title='test1' \r\nWHERE ([Id] = 1)", g.msaccess.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); - Assert.Equal("UPDATE [tb_topicAsTable] SET title='test1' \r\nWHERE ([Id] = 1 OR [Id] = 2)", g.msaccess.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE [tb_topicAsTable] SET title='test1' \r\nWHERE ([Id] IN (1,2))", g.msaccess.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE [tb_topicAsTable] SET title='test1' \r\nWHERE ([Id] = 1)", g.msaccess.Update(new { id = 1 }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); } } diff --git a/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlDeleteTest.cs index 3fcb503f..bca53e7f 100644 --- a/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlDeleteTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlDeleteTest.cs @@ -27,13 +27,13 @@ namespace FreeSql.Tests.MySql { Assert.Null(g.mysql.Delete().ToSql()); var sql = g.mysql.Delete(new[] { 1, 2 }).ToSql(); - Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` = 1 OR `Id` = 2)", sql); + Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` IN (1,2))", sql); sql = g.mysql.Delete(new Topic { Id = 1, Title = "test" }).ToSql(); Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` = 1)", sql); sql = g.mysql.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).ToSql(); - Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` = 1 OR `Id` = 2)", sql); + Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` IN (1,2))", sql); sql = g.mysql.Delete(new { id = 1 }).ToSql(); Assert.Equal("DELETE FROM `tb_topic_delete` WHERE (`Id` = 1)", sql); @@ -90,13 +90,13 @@ namespace FreeSql.Tests.MySql { Assert.Null(g.mysql.Delete().ToSql()); var sql = g.mysql.Delete(new[] { 1, 2 }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` = 1 OR `Id` = 2)", sql); + Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` IN (1,2))", sql); sql = g.mysql.Delete(new Topic { Id = 1, Title = "test" }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` = 1)", sql); sql = g.mysql.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` = 1 OR `Id` = 2)", sql); + Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` IN (1,2))", sql); sql = g.mysql.Delete(new { id = 1 }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM `TopicAsTable` WHERE (`Id` = 1)", sql); diff --git a/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlUpdateTest.cs index 5ff9a1b3..3294d265 100644 --- a/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlUpdateTest.cs @@ -33,9 +33,9 @@ namespace FreeSql.Tests.MySql public void Dywhere() { Assert.Null(g.mysql.Update().ToSql()); - Assert.Equal("UPDATE `tb_topic` SET title='test' \r\nWHERE (`Id` = 1 OR `Id` = 2)", g.mysql.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); + Assert.Equal("UPDATE `tb_topic` SET title='test' \r\nWHERE (`Id` IN (1,2))", g.mysql.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); Assert.Equal("UPDATE `tb_topic` SET title='test1' \r\nWHERE (`Id` = 1)", g.mysql.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").ToSql()); - Assert.Equal("UPDATE `tb_topic` SET title='test1' \r\nWHERE (`Id` = 1 OR `Id` = 2)", g.mysql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); + Assert.Equal("UPDATE `tb_topic` SET title='test1' \r\nWHERE (`Id` IN (1,2))", g.mysql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); Assert.Equal("UPDATE `tb_topic` SET title='test1' \r\nWHERE (`Id` = 1)", g.mysql.Update(new { id = 1 }).SetRaw("title='test1'").ToSql()); } @@ -372,9 +372,9 @@ limit 0,1", fsql.Select().Where(a => a.id == item.id && a.status == (a public void AsTable() { Assert.Null(g.mysql.Update().ToSql()); - Assert.Equal("UPDATE `tb_topicAsTable` SET title='test' \r\nWHERE (`Id` = 1 OR `Id` = 2)", g.mysql.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE `tb_topicAsTable` SET title='test' \r\nWHERE (`Id` IN (1,2))", g.mysql.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE `tb_topicAsTable` SET title='test1' \r\nWHERE (`Id` = 1)", g.mysql.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); - Assert.Equal("UPDATE `tb_topicAsTable` SET title='test1' \r\nWHERE (`Id` = 1 OR `Id` = 2)", g.mysql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE `tb_topicAsTable` SET title='test1' \r\nWHERE (`Id` IN (1,2))", g.mysql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE `tb_topicAsTable` SET title='test1' \r\nWHERE (`Id` = 1)", g.mysql.Update(new { id = 1 }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); } } diff --git a/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleDeleteTest.cs index 6b3cee7f..5be0eb9e 100644 --- a/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleDeleteTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleDeleteTest.cs @@ -27,13 +27,13 @@ namespace FreeSql.Tests.Oracle { Assert.Null(g.oracle.Delete().ToSql()); var sql = g.oracle.Delete(new[] { 1, 2 }).ToSql(); - Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" IN (1,2))", sql); sql = g.oracle.Delete(new Topic { Id = 1, Title = "test" }).ToSql(); Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1)", sql); sql = g.oracle.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).ToSql(); - Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" IN (1,2))", sql); sql = g.oracle.Delete(new { id = 1 }).ToSql(); Assert.Equal("DELETE FROM \"TB_TOPIC22211\" WHERE (\"ID\" = 1)", sql); @@ -91,13 +91,13 @@ namespace FreeSql.Tests.Oracle { Assert.Null(g.oracle.Delete().ToSql()); var sql = g.oracle.Delete(new[] { 1, 2 }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" IN (1,2))", sql); sql = g.oracle.Delete(new Topic { Id = 1, Title = "test" }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1)", sql); sql = g.oracle.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" IN (1,2))", sql); sql = g.oracle.Delete(new { id = 1 }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1)", sql); diff --git a/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleUpdateTest.cs index da976c0d..5a8cd4cd 100644 --- a/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleUpdateTest.cs @@ -24,9 +24,9 @@ namespace FreeSql.Tests.Oracle public void Dywhere() { Assert.Null(g.oracle.Update().ToSql()); - Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.oracle.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); + Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test' \r\nWHERE (\"ID\" IN (1,2))", g.oracle.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.oracle.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").ToSql()); - Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.oracle.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); + Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" IN (1,2))", g.oracle.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); Assert.Equal("UPDATE \"TB_TOPIC\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.oracle.Update(new { id = 1 }).SetRaw("title='test1'").ToSql()); } @@ -186,9 +186,9 @@ namespace FreeSql.Tests.Oracle public void AsTable() { Assert.Null(g.oracle.Update().ToSql()); - Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.oracle.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test' \r\nWHERE (\"ID\" IN (1,2))", g.oracle.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.oracle.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); - Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.oracle.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" IN (1,2))", g.oracle.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.oracle.Update(new { id = 1 }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); } } diff --git a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLDeleteTest.cs index 3a0e19d5..e56e1fa1 100644 --- a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLDeleteTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLDeleteTest.cs @@ -27,13 +27,13 @@ namespace FreeSql.Tests.PostgreSQL { Assert.Null(g.pgsql.Delete().ToSql()); var sql = g.pgsql.Delete(new[] { 1, 2 }).ToSql(); - Assert.Equal("DELETE FROM \"tb_topic_del\" WHERE (\"id\" = 1 OR \"id\" = 2)", sql); + Assert.Equal("DELETE FROM \"tb_topic_del\" WHERE (\"id\" IN (1,2))", sql); sql = g.pgsql.Delete(new Topic { Id = 1, Title = "test" }).ToSql(); Assert.Equal("DELETE FROM \"tb_topic_del\" WHERE (\"id\" = 1)", sql); sql = g.pgsql.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).ToSql(); - Assert.Equal("DELETE FROM \"tb_topic_del\" WHERE (\"id\" = 1 OR \"id\" = 2)", sql); + Assert.Equal("DELETE FROM \"tb_topic_del\" WHERE (\"id\" IN (1,2))", sql); sql = g.pgsql.Delete(new { id = 1 }).ToSql(); Assert.Equal("DELETE FROM \"tb_topic_del\" WHERE (\"id\" = 1)", sql); @@ -90,13 +90,13 @@ namespace FreeSql.Tests.PostgreSQL { Assert.Null(g.pgsql.Delete().ToSql()); var sql = g.pgsql.Delete(new[] { 1, 2 }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"topicastable\" WHERE (\"id\" = 1 OR \"id\" = 2)", sql); + Assert.Equal("DELETE FROM \"topicastable\" WHERE (\"id\" IN (1,2))", sql); sql = g.pgsql.Delete(new Topic { Id = 1, Title = "test" }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"topicastable\" WHERE (\"id\" = 1)", sql); sql = g.pgsql.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"topicastable\" WHERE (\"id\" = 1 OR \"id\" = 2)", sql); + Assert.Equal("DELETE FROM \"topicastable\" WHERE (\"id\" IN (1,2))", sql); sql = g.pgsql.Delete(new { id = 1 }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"topicastable\" WHERE (\"id\" = 1)", sql); diff --git a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLUpdateTest.cs index 47267c86..637235d4 100644 --- a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLUpdateTest.cs @@ -25,9 +25,9 @@ namespace FreeSql.Tests.PostgreSQL public void Dywhere() { Assert.Null(g.pgsql.Update().ToSql()); - Assert.Equal("UPDATE \"tb_topic\" SET title='test' \r\nWHERE (\"id\" = 1 OR \"id\" = 2)", g.pgsql.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); + Assert.Equal("UPDATE \"tb_topic\" SET title='test' \r\nWHERE (\"id\" IN (1,2))", g.pgsql.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); Assert.Equal("UPDATE \"tb_topic\" SET title='test1' \r\nWHERE (\"id\" = 1)", g.pgsql.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").ToSql()); - Assert.Equal("UPDATE \"tb_topic\" SET title='test1' \r\nWHERE (\"id\" = 1 OR \"id\" = 2)", g.pgsql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); + Assert.Equal("UPDATE \"tb_topic\" SET title='test1' \r\nWHERE (\"id\" IN (1,2))", g.pgsql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); Assert.Equal("UPDATE \"tb_topic\" SET title='test1' \r\nWHERE (\"id\" = 1)", g.pgsql.Update(new { id = 1 }).SetRaw("title='test1'").ToSql()); } @@ -180,9 +180,9 @@ namespace FreeSql.Tests.PostgreSQL public void AsTable() { Assert.Null(g.pgsql.Update().ToSql()); - Assert.Equal("UPDATE \"tb_topicastable\" SET title='test' \r\nWHERE (\"id\" = 1 OR \"id\" = 2)", g.pgsql.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"tb_topicastable\" SET title='test' \r\nWHERE (\"id\" IN (1,2))", g.pgsql.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"tb_topicastable\" SET title='test1' \r\nWHERE (\"id\" = 1)", g.pgsql.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); - Assert.Equal("UPDATE \"tb_topicastable\" SET title='test1' \r\nWHERE (\"id\" = 1 OR \"id\" = 2)", g.pgsql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"tb_topicastable\" SET title='test1' \r\nWHERE (\"id\" IN (1,2))", g.pgsql.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"tb_topicastable\" SET title='test1' \r\nWHERE (\"id\" = 1)", g.pgsql.Update(new { id = 1 }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); } } diff --git a/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongDeleteTest.cs index 6f07533b..a5840e10 100644 --- a/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongDeleteTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongDeleteTest.cs @@ -27,13 +27,13 @@ namespace FreeSql.Tests.ShenTong { Assert.Null(g.shentong.Delete().ToSql()); var sql = g.shentong.Delete(new[] { 1, 2 }).ToSql(); - Assert.Equal("DELETE FROM \"TB_TOPIC_DEL\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TB_TOPIC_DEL\" WHERE (\"ID\" IN (1,2))", sql); sql = g.shentong.Delete(new Topic { Id = 1, Title = "test" }).ToSql(); Assert.Equal("DELETE FROM \"TB_TOPIC_DEL\" WHERE (\"ID\" = 1)", sql); sql = g.shentong.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).ToSql(); - Assert.Equal("DELETE FROM \"TB_TOPIC_DEL\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TB_TOPIC_DEL\" WHERE (\"ID\" IN (1,2))", sql); sql = g.shentong.Delete(new { id = 1 }).ToSql(); Assert.Equal("DELETE FROM \"TB_TOPIC_DEL\" WHERE (\"ID\" = 1)", sql); @@ -90,13 +90,13 @@ namespace FreeSql.Tests.ShenTong { Assert.Null(g.shentong.Delete().ToSql()); var sql = g.shentong.Delete(new[] { 1, 2 }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" IN (1,2))", sql); sql = g.shentong.Delete(new Topic { Id = 1, Title = "test" }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1)", sql); sql = g.shentong.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1 OR \"ID\" = 2)", sql); + Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" IN (1,2))", sql); sql = g.shentong.Delete(new { id = 1 }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"TOPICASTABLE\" WHERE (\"ID\" = 1)", sql); diff --git a/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongUpdateTest.cs index 0662a1fd..22578cfb 100644 --- a/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongUpdateTest.cs @@ -25,9 +25,9 @@ namespace FreeSql.Tests.ShenTong public void Dywhere() { Assert.Null(g.shentong.Update().ToSql()); - Assert.Equal("UPDATE \"TB_TOPIC_INSERT\" SET title='test' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.shentong.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); + Assert.Equal("UPDATE \"TB_TOPIC_INSERT\" SET title='test' \r\nWHERE (\"ID\" IN (1,2))", g.shentong.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); Assert.Equal("UPDATE \"TB_TOPIC_INSERT\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.shentong.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").ToSql()); - Assert.Equal("UPDATE \"TB_TOPIC_INSERT\" SET title='test1' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.shentong.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); + Assert.Equal("UPDATE \"TB_TOPIC_INSERT\" SET title='test1' \r\nWHERE (\"ID\" IN (1,2))", g.shentong.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); Assert.Equal("UPDATE \"TB_TOPIC_INSERT\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.shentong.Update(new { id = 1 }).SetRaw("title='test1'").ToSql()); } @@ -180,9 +180,9 @@ namespace FreeSql.Tests.ShenTong public void AsTable() { Assert.Null(g.shentong.Update().ToSql()); - Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.shentong.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test' \r\nWHERE (\"ID\" IN (1,2))", g.shentong.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.shentong.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); - Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1 OR \"ID\" = 2)", g.shentong.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" IN (1,2))", g.shentong.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"TB_TOPICASTABLE\" SET title='test1' \r\nWHERE (\"ID\" = 1)", g.shentong.Update(new { id = 1 }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); } } diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerDeleteTest.cs index 713f77f1..d36d73e2 100644 --- a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerDeleteTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerDeleteTest.cs @@ -35,13 +35,13 @@ namespace FreeSql.Tests.SqlServer { Assert.Null(g.sqlserver.Delete().ToSql()); var sql = g.sqlserver.Delete(new[] { 1, 2 }).ToSql(); - Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] = 1 OR [Id] = 2)", sql); + Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] IN (1,2))", sql); sql = g.sqlserver.Delete(new Topic { Id = 1, Title = "test" }).ToSql(); Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] = 1)", sql); sql = g.sqlserver.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).ToSql(); - Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] = 1 OR [Id] = 2)", sql); + Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] IN (1,2))", sql); sql = g.sqlserver.Delete(new { id = 1 }).ToSql(); Assert.Equal("DELETE FROM [tb_topic22211] WHERE ([Id] = 1)", sql); @@ -105,13 +105,13 @@ namespace FreeSql.Tests.SqlServer { Assert.Null(g.sqlserver.Delete().ToSql()); var sql = g.sqlserver.Delete(new[] { 1, 2 }).AsTable(a => "tb_topic22211AsTable").ToSql(); - Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] = 1 OR [Id] = 2)", sql); + Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] IN (1,2))", sql); sql = g.sqlserver.Delete(new Topic { Id = 1, Title = "test" }).AsTable(a => "tb_topic22211AsTable").ToSql(); Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] = 1)", sql); sql = g.sqlserver.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).AsTable(a => "tb_topic22211AsTable").ToSql(); - Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] = 1 OR [Id] = 2)", sql); + Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] IN (1,2))", sql); sql = g.sqlserver.Delete(new { id = 1 }).AsTable(a => "tb_topic22211AsTable").ToSql(); Assert.Equal("DELETE FROM [tb_topic22211AsTable] WHERE ([Id] = 1)", sql); diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerUpdateTest.cs index 80474061..a32bf3d4 100644 --- a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerUpdateTest.cs @@ -36,9 +36,9 @@ namespace FreeSql.Tests.SqlServer public void Dywhere() { Assert.Null(g.sqlserver.Update().ToSql()); - Assert.Equal("UPDATE [tb_topic] SET title='test' \r\nWHERE ([Id] = 1 OR [Id] = 2)", g.sqlserver.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); + Assert.Equal("UPDATE [tb_topic] SET title='test' \r\nWHERE ([Id] IN (1,2))", g.sqlserver.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); Assert.Equal("UPDATE [tb_topic] SET title='test1' \r\nWHERE ([Id] = 1)", g.sqlserver.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").ToSql()); - Assert.Equal("UPDATE [tb_topic] SET title='test1' \r\nWHERE ([Id] = 1 OR [Id] = 2)", g.sqlserver.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); + Assert.Equal("UPDATE [tb_topic] SET title='test1' \r\nWHERE ([Id] IN (1,2))", g.sqlserver.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); Assert.Equal("UPDATE [tb_topic] SET title='test1' \r\nWHERE ([Id] = 1)", g.sqlserver.Update(new { id = 1 }).SetRaw("title='test1'").ToSql()); } @@ -203,9 +203,9 @@ namespace FreeSql.Tests.SqlServer public void AsTable() { Assert.Null(g.sqlserver.Update().ToSql()); - Assert.Equal("UPDATE [tb_topicAsTable] SET title='test' \r\nWHERE ([Id] = 1 OR [Id] = 2)", g.sqlserver.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE [tb_topicAsTable] SET title='test' \r\nWHERE ([Id] IN (1,2))", g.sqlserver.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE [tb_topicAsTable] SET title='test1' \r\nWHERE ([Id] = 1)", g.sqlserver.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); - Assert.Equal("UPDATE [tb_topicAsTable] SET title='test1' \r\nWHERE ([Id] = 1 OR [Id] = 2)", g.sqlserver.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE [tb_topicAsTable] SET title='test1' \r\nWHERE ([Id] IN (1,2))", g.sqlserver.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE [tb_topicAsTable] SET title='test1' \r\nWHERE ([Id] = 1)", g.sqlserver.Update(new { id = 1 }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); } } diff --git a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteDeleteTest.cs index 4be2cd43..dad8da8b 100644 --- a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteDeleteTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteDeleteTest.cs @@ -27,13 +27,13 @@ namespace FreeSql.Tests.Sqlite { Assert.Null(g.sqlite.Delete().ToSql()); var sql = g.sqlite.Delete(new[] { 1, 2 }).ToSql(); - Assert.Equal("DELETE FROM \"tb_topic22211\" WHERE (\"Id\" = 1 OR \"Id\" = 2)", sql); + Assert.Equal("DELETE FROM \"tb_topic22211\" WHERE (\"Id\" IN (1,2))", sql); sql = g.sqlite.Delete(new Topic { Id = 1, Title = "test" }).ToSql(); Assert.Equal("DELETE FROM \"tb_topic22211\" WHERE (\"Id\" = 1)", sql); sql = g.sqlite.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).ToSql(); - Assert.Equal("DELETE FROM \"tb_topic22211\" WHERE (\"Id\" = 1 OR \"Id\" = 2)", sql); + Assert.Equal("DELETE FROM \"tb_topic22211\" WHERE (\"Id\" IN (1,2))", sql); sql = g.sqlite.Delete(new { id = 1 }).ToSql(); Assert.Equal("DELETE FROM \"tb_topic22211\" WHERE (\"Id\" = 1)", sql); @@ -91,13 +91,13 @@ namespace FreeSql.Tests.Sqlite { Assert.Null(g.sqlite.Delete().AsTable(a => "TopicAsTable").ToSql()); var sql = g.sqlite.Delete(new[] { 1, 2 }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"TopicAsTable\" WHERE (\"Id\" = 1 OR \"Id\" = 2)", sql); + Assert.Equal("DELETE FROM \"TopicAsTable\" WHERE (\"Id\" IN (1,2))", sql); sql = g.sqlite.Delete(new Topic { Id = 1, Title = "test" }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"TopicAsTable\" WHERE (\"Id\" = 1)", sql); sql = g.sqlite.Delete(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).AsTable(a => "TopicAsTable").ToSql(); - Assert.Equal("DELETE FROM \"TopicAsTable\" WHERE (\"Id\" = 1 OR \"Id\" = 2)", sql); + Assert.Equal("DELETE FROM \"TopicAsTable\" WHERE (\"Id\" IN (1,2))", sql); sql = g.sqlite.Delete(new { id = 1 }).AsTable(a => "TopicAsTable").ToSql(); Assert.Equal("DELETE FROM \"TopicAsTable\" WHERE (\"Id\" = 1)", sql); diff --git a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteUpdateTest.cs index b9a0e04f..738852d4 100644 --- a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteUpdateTest.cs @@ -37,9 +37,9 @@ namespace FreeSql.Tests.Sqlite public void Dywhere() { Assert.Null(g.sqlite.Update().ToSql()); - Assert.Equal("UPDATE \"tb_topic\" SET title='test' \r\nWHERE (\"Id\" = 1 OR \"Id\" = 2)", g.sqlite.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); + Assert.Equal("UPDATE \"tb_topic\" SET title='test' \r\nWHERE (\"Id\" IN (1,2))", g.sqlite.Update(new[] { 1, 2 }).SetRaw("title='test'").ToSql()); Assert.Equal("UPDATE \"tb_topic\" SET title='test1' \r\nWHERE (\"Id\" = 1)", g.sqlite.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").ToSql()); - Assert.Equal("UPDATE \"tb_topic\" SET title='test1' \r\nWHERE (\"Id\" = 1 OR \"Id\" = 2)", g.sqlite.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); + Assert.Equal("UPDATE \"tb_topic\" SET title='test1' \r\nWHERE (\"Id\" IN (1,2))", g.sqlite.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").ToSql()); Assert.Equal("UPDATE \"tb_topic\" SET title='test1' \r\nWHERE (\"Id\" = 1)", g.sqlite.Update(new { id = 1 }).SetRaw("title='test1'").ToSql()); } @@ -234,9 +234,9 @@ namespace FreeSql.Tests.Sqlite public void AsTable() { Assert.Null(g.sqlite.Update().ToSql()); - Assert.Equal("UPDATE \"tb_topicAsTable\" SET title='test' \r\nWHERE (\"Id\" = 1 OR \"Id\" = 2)", g.sqlite.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"tb_topicAsTable\" SET title='test' \r\nWHERE (\"Id\" IN (1,2))", g.sqlite.Update(new[] { 1, 2 }).SetRaw("title='test'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"tb_topicAsTable\" SET title='test1' \r\nWHERE (\"Id\" = 1)", g.sqlite.Update(new Topic { Id = 1, Title = "test" }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); - Assert.Equal("UPDATE \"tb_topicAsTable\" SET title='test1' \r\nWHERE (\"Id\" = 1 OR \"Id\" = 2)", g.sqlite.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); + Assert.Equal("UPDATE \"tb_topicAsTable\" SET title='test1' \r\nWHERE (\"Id\" IN (1,2))", g.sqlite.Update(new[] { new Topic { Id = 1, Title = "test" }, new Topic { Id = 2, Title = "test" } }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); Assert.Equal("UPDATE \"tb_topicAsTable\" SET title='test1' \r\nWHERE (\"Id\" = 1)", g.sqlite.Update(new { id = 1 }).SetRaw("title='test1'").AsTable(a => "tb_topicAsTable").ToSql()); } } diff --git a/FreeSql/Internal/CommonUtils.cs b/FreeSql/Internal/CommonUtils.cs index 7d0704c0..76229b54 100644 --- a/FreeSql/Internal/CommonUtils.cs +++ b/FreeSql/Internal/CommonUtils.cs @@ -286,6 +286,28 @@ namespace FreeSql.Internal { return $"{aliasAndDot}{this.QuoteSqlName(pk1.Attribute.Name)} = {this.FormatSql("{0}", Utils.GetDataReaderValue(pk1.Attribute.MapType, dywhere))}"; } + else if (primarys.Length == 1 && dywhere is IEnumerable) + { + var sb = new StringBuilder(); + var ie = dywhere as IEnumerable; + var ieidx = 0; + var isEntityType = false; + sb.Append(aliasAndDot).Append(this.QuoteSqlName(pk1.Attribute.Name)).Append(" IN ("); //or会造成扫全表 + foreach (var i in ie) + { + if (ieidx > 0) sb.Append(","); + if (ieidx == 0) + { + var itype = i.GetType(); + isEntityType = (itype == table.Type || itype.BaseType == table.Type); + } + if (isEntityType) sb.Append(this.FormatSql("{0}", primarys[0].GetMapValue(i))); + else sb.Append(this.FormatSql("{0}", Utils.GetDataReaderValue(pk1.Attribute.MapType, i))); + ++ieidx; + } + sb.Append(")"); + return sb.ToString(); + } else if (dywhere is IEnumerable) { var sb = new StringBuilder();