diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index 3f9fb047..2711e35d 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -99,6 +99,13 @@
清空状态数据
+
+
+ 根据 lambda 条件删除数据
+
+
+
+
添加
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlSelectTest.cs
index 792618fc..03ead48d 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlSelectTest.cs
@@ -1358,5 +1358,139 @@ namespace FreeSql.Tests.MySqlConnector
.Where(a => a.Tag.Id == tag1.Id || a.Tag.Id == tag2.Id)
.ToList(true);
}
+
+ public class ToDel1Pk
+ {
+ [Column(IsIdentity = true)]
+ public int id { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel2Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk2 { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel3Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public int pk2 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk3 { get; set; }
+ public string name { get; set; }
+ }
+ [Fact]
+ public void ToDelete()
+ {
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToDel1Pk{ name = "name1"},
+ new ToDel1Pk{ name = "name2"},
+ new ToDel1Pk{ name = "nick1"},
+ new ToDel1Pk{ name = "nick2"},
+ new ToDel1Pk{ name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.mysql.Select().Count());
+ Assert.Equal(3, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.mysql.Select().Count());
+ Assert.Equal(3, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.mysql.Select().Count());
+ Assert.Equal(3, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+ }
+
+ public class ToUpd1Pk
+ {
+ [Column(IsIdentity = true)]
+ public int id { get; set; }
+ public string name { get; set; }
+ }
+ public class ToUpd2Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk2 { get; set; }
+ public string name { get; set; }
+ }
+ public class ToUpd3Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public int pk2 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk3 { get; set; }
+ public string name { get; set; }
+ }
+ [Fact]
+ public void ToUpdate()
+ {
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToUpd1Pk{ name = "name1"},
+ new ToUpd1Pk{ name = "name2"},
+ new ToUpd1Pk{ name = "nick1"},
+ new ToUpd1Pk{ name = "nick2"},
+ new ToUpd1Pk{ name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.mysql.Select().Count());
+ Assert.Equal(5, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name1"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name2"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick1"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick2"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.mysql.Select().Count());
+ Assert.Equal(5, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name1"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name2"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick1"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick2"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.mysql.Select().Count());
+ Assert.Equal(5, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+ }
}
}
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcSelectTest.cs
index a9184ea1..a381b2fa 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcSelectTest.cs
@@ -1202,5 +1202,139 @@ namespace FreeSql.Tests.Odbc.Default
.Where(a => a.Tag.Id == tag1.Id || a.Tag.Id == tag2.Id)
.ToList(true);
}
+
+ public class ToDel1Pk
+ {
+ [Column(IsIdentity = true)]
+ public int id { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel2Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk2 { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel3Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public int pk2 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk3 { get; set; }
+ public string name { get; set; }
+ }
+ [Fact]
+ public void ToDelete()
+ {
+ g.odbc.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.odbc.Select().Count());
+ g.odbc.Insert(new[] {
+ new ToDel1Pk{ name = "name1"},
+ new ToDel1Pk{ name = "name2"},
+ new ToDel1Pk{ name = "nick1"},
+ new ToDel1Pk{ name = "nick2"},
+ new ToDel1Pk{ name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.odbc.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.odbc.Select().Count());
+ Assert.Equal(3, g.odbc.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.odbc.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.odbc.Select().Count());
+ g.odbc.Insert(new[] {
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.odbc.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.odbc.Select().Count());
+ Assert.Equal(3, g.odbc.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.odbc.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.odbc.Select().Count());
+ g.odbc.Insert(new[] {
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.odbc.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.odbc.Select().Count());
+ Assert.Equal(3, g.odbc.Select().Where(a => a.name.StartsWith("nick")).Count());
+ }
+
+ public class ToUpd1Pk
+ {
+ [Column(IsIdentity = true)]
+ public int id { get; set; }
+ public string name { get; set; }
+ }
+ public class ToUpd2Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk2 { get; set; }
+ public string name { get; set; }
+ }
+ public class ToUpd3Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public int pk2 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk3 { get; set; }
+ public string name { get; set; }
+ }
+ [Fact]
+ public void ToUpdate()
+ {
+ g.odbc.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.odbc.Select().Count());
+ g.odbc.Insert(new[] {
+ new ToUpd1Pk{ name = "name1"},
+ new ToUpd1Pk{ name = "name2"},
+ new ToUpd1Pk{ name = "nick1"},
+ new ToUpd1Pk{ name = "nick2"},
+ new ToUpd1Pk{ name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.odbc.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.odbc.Select().Count());
+ Assert.Equal(5, g.odbc.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.odbc.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.odbc.Select().Count());
+ g.odbc.Insert(new[] {
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name1"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name2"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick1"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick2"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.odbc.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.odbc.Select().Count());
+ Assert.Equal(5, g.odbc.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.odbc.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.odbc.Select().Count());
+ g.odbc.Insert(new[] {
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name1"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name2"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick1"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick2"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.odbc.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.odbc.Select().Count());
+ Assert.Equal(5, g.odbc.Select().Where(a => a.name.StartsWith("nick")).Count());
+ }
}
}
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlSelectTest.cs
index 3c3813b2..6fc08172 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlSelectTest.cs
@@ -1348,5 +1348,139 @@ namespace FreeSql.Tests.Odbc.MySql
.Where(a => a.Tag.Id == tag1.Id || a.Tag.Id == tag2.Id)
.ToList(true);
}
+
+ public class ToDel1Pk
+ {
+ [Column(IsIdentity = true)]
+ public int id { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel2Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk2 { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel3Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public int pk2 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk3 { get; set; }
+ public string name { get; set; }
+ }
+ [Fact]
+ public void ToDelete()
+ {
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToDel1Pk{ name = "name1"},
+ new ToDel1Pk{ name = "name2"},
+ new ToDel1Pk{ name = "nick1"},
+ new ToDel1Pk{ name = "nick2"},
+ new ToDel1Pk{ name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.mysql.Select().Count());
+ Assert.Equal(3, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.mysql.Select().Count());
+ Assert.Equal(3, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.mysql.Select().Count());
+ Assert.Equal(3, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+ }
+
+ public class ToUpd1Pk
+ {
+ [Column(IsIdentity = true)]
+ public int id { get; set; }
+ public string name { get; set; }
+ }
+ public class ToUpd2Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk2 { get; set; }
+ public string name { get; set; }
+ }
+ public class ToUpd3Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public int pk2 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk3 { get; set; }
+ public string name { get; set; }
+ }
+ [Fact]
+ public void ToUpdate()
+ {
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToUpd1Pk{ name = "name1"},
+ new ToUpd1Pk{ name = "name2"},
+ new ToUpd1Pk{ name = "nick1"},
+ new ToUpd1Pk{ name = "nick2"},
+ new ToUpd1Pk{ name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.mysql.Select().Count());
+ Assert.Equal(5, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name1"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name2"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick1"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick2"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.mysql.Select().Count());
+ Assert.Equal(5, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name1"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name2"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick1"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick2"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.mysql.Select().Count());
+ Assert.Equal(5, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+ }
}
}
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleSelectTest.cs
index ac553fd0..9c9a7d8f 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleSelectTest.cs
@@ -1232,5 +1232,139 @@ namespace FreeSql.Tests.Odbc.Oracle
.Where(a => a.Tag.Id == tag1.Id || a.Tag.Id == tag2.Id)
.ToList(true);
}
+
+ public class ToDel1Pk
+ {
+ [Column(IsIdentity = true)]
+ public int id { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel2Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk2 { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel3Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public int pk2 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk3 { get; set; }
+ public string name { get; set; }
+ }
+ [Fact]
+ public void ToDelete()
+ {
+ g.oracle.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.oracle.Select().Count());
+ g.oracle.Insert(new[] {
+ new ToDel1Pk{ name = "name1"},
+ new ToDel1Pk{ name = "name2"},
+ new ToDel1Pk{ name = "nick1"},
+ new ToDel1Pk{ name = "nick2"},
+ new ToDel1Pk{ name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.oracle.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.oracle.Select().Count());
+ Assert.Equal(3, g.oracle.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.oracle.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.oracle.Select().Count());
+ g.oracle.Insert(new[] {
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.oracle.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.oracle.Select().Count());
+ Assert.Equal(3, g.oracle.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.oracle.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.oracle.Select().Count());
+ g.oracle.Insert(new[] {
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.oracle.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.oracle.Select().Count());
+ Assert.Equal(3, g.oracle.Select().Where(a => a.name.StartsWith("nick")).Count());
+ }
+
+ public class ToUpd1Pk
+ {
+ [Column(IsIdentity = true)]
+ public int id { get; set; }
+ public string name { get; set; }
+ }
+ public class ToUpd2Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk2 { get; set; }
+ public string name { get; set; }
+ }
+ public class ToUpd3Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public int pk2 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk3 { get; set; }
+ public string name { get; set; }
+ }
+ [Fact]
+ public void ToUpdate()
+ {
+ g.oracle.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.oracle.Select().Count());
+ g.oracle.Insert(new[] {
+ new ToUpd1Pk{ name = "name1"},
+ new ToUpd1Pk{ name = "name2"},
+ new ToUpd1Pk{ name = "nick1"},
+ new ToUpd1Pk{ name = "nick2"},
+ new ToUpd1Pk{ name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.oracle.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.oracle.Select().Count());
+ Assert.Equal(5, g.oracle.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.oracle.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.oracle.Select().Count());
+ g.oracle.Insert(new[] {
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name1"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name2"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick1"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick2"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.oracle.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.oracle.Select().Count());
+ Assert.Equal(5, g.oracle.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.oracle.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.oracle.Select().Count());
+ g.oracle.Insert(new[] {
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name1"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name2"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick1"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick2"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.oracle.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.oracle.Select().Count());
+ Assert.Equal(5, g.oracle.Select().Where(a => a.name.StartsWith("nick")).Count());
+ }
}
}
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLSelectTest.cs
index 1854ddee..385cdef5 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLSelectTest.cs
@@ -1306,5 +1306,139 @@ namespace FreeSql.Tests.Odbc.PostgreSQL
.Where(a => a.Tag.Id == tag1.Id || a.Tag.Id == tag2.Id)
.ToList(true);
}
+
+ public class ToDel1Pk
+ {
+ [Column(IsIdentity = true)]
+ public int id { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel2Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk2 { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel3Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public int pk2 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk3 { get; set; }
+ public string name { get; set; }
+ }
+ [Fact]
+ public void ToDelete()
+ {
+ g.pgsql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.pgsql.Select().Count());
+ g.pgsql.Insert(new[] {
+ new ToDel1Pk{ name = "name1"},
+ new ToDel1Pk{ name = "name2"},
+ new ToDel1Pk{ name = "nick1"},
+ new ToDel1Pk{ name = "nick2"},
+ new ToDel1Pk{ name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.pgsql.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.pgsql.Select().Count());
+ Assert.Equal(3, g.pgsql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.pgsql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.pgsql.Select().Count());
+ g.pgsql.Insert(new[] {
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.pgsql.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.pgsql.Select().Count());
+ Assert.Equal(3, g.pgsql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.pgsql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.pgsql.Select().Count());
+ g.pgsql.Insert(new[] {
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.pgsql.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.pgsql.Select().Count());
+ Assert.Equal(3, g.pgsql.Select().Where(a => a.name.StartsWith("nick")).Count());
+ }
+
+ public class ToUpd1Pk
+ {
+ [Column(IsIdentity = true)]
+ public int id { get; set; }
+ public string name { get; set; }
+ }
+ public class ToUpd2Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk2 { get; set; }
+ public string name { get; set; }
+ }
+ public class ToUpd3Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public int pk2 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk3 { get; set; }
+ public string name { get; set; }
+ }
+ [Fact]
+ public void ToUpdate()
+ {
+ g.pgsql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.pgsql.Select().Count());
+ g.pgsql.Insert(new[] {
+ new ToUpd1Pk{ name = "name1"},
+ new ToUpd1Pk{ name = "name2"},
+ new ToUpd1Pk{ name = "nick1"},
+ new ToUpd1Pk{ name = "nick2"},
+ new ToUpd1Pk{ name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.pgsql.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.pgsql.Select().Count());
+ Assert.Equal(5, g.pgsql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.pgsql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.pgsql.Select().Count());
+ g.pgsql.Insert(new[] {
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name1"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name2"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick1"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick2"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.pgsql.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.pgsql.Select().Count());
+ Assert.Equal(5, g.pgsql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.pgsql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.pgsql.Select().Count());
+ g.pgsql.Insert(new[] {
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name1"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name2"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick1"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick2"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.pgsql.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.pgsql.Select().Count());
+ Assert.Equal(5, g.pgsql.Select().Where(a => a.name.StartsWith("nick")).Count());
+ }
}
}
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerSelectTest.cs
index 07051350..80be8d34 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerSelectTest.cs
@@ -1220,5 +1220,139 @@ namespace FreeSql.Tests.Odbc.SqlServer
.Where(a => a.Tag.Id == tag1.Id || a.Tag.Id == tag2.Id)
.ToList(true);
}
+
+ public class ToDel1Pk
+ {
+ [Column(IsIdentity = true)]
+ public int id { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel2Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk2 { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel3Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public int pk2 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk3 { get; set; }
+ public string name { get; set; }
+ }
+ [Fact]
+ public void ToDelete()
+ {
+ g.sqlserver.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.sqlserver.Select().Count());
+ g.sqlserver.Insert(new[] {
+ new ToDel1Pk{ name = "name1"},
+ new ToDel1Pk{ name = "name2"},
+ new ToDel1Pk{ name = "nick1"},
+ new ToDel1Pk{ name = "nick2"},
+ new ToDel1Pk{ name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.sqlserver.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.sqlserver.Select().Count());
+ Assert.Equal(3, g.sqlserver.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.sqlserver.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.sqlserver.Select().Count());
+ g.sqlserver.Insert(new[] {
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.sqlserver.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.sqlserver.Select().Count());
+ Assert.Equal(3, g.sqlserver.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.sqlserver.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.sqlserver.Select().Count());
+ g.sqlserver.Insert(new[] {
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.sqlserver.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.sqlserver.Select().Count());
+ Assert.Equal(3, g.sqlserver.Select().Where(a => a.name.StartsWith("nick")).Count());
+ }
+
+ public class ToUpd1Pk
+ {
+ [Column(IsIdentity = true)]
+ public int id { get; set; }
+ public string name { get; set; }
+ }
+ public class ToUpd2Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk2 { get; set; }
+ public string name { get; set; }
+ }
+ public class ToUpd3Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public int pk2 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk3 { get; set; }
+ public string name { get; set; }
+ }
+ [Fact]
+ public void ToUpdate()
+ {
+ g.sqlserver.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.sqlserver.Select().Count());
+ g.sqlserver.Insert(new[] {
+ new ToUpd1Pk{ name = "name1"},
+ new ToUpd1Pk{ name = "name2"},
+ new ToUpd1Pk{ name = "nick1"},
+ new ToUpd1Pk{ name = "nick2"},
+ new ToUpd1Pk{ name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.sqlserver.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.sqlserver.Select().Count());
+ Assert.Equal(5, g.sqlserver.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.sqlserver.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.sqlserver.Select().Count());
+ g.sqlserver.Insert(new[] {
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name1"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name2"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick1"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick2"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.sqlserver.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.sqlserver.Select().Count());
+ Assert.Equal(5, g.sqlserver.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.sqlserver.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.sqlserver.Select().Count());
+ g.sqlserver.Insert(new[] {
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name1"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name2"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick1"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick2"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.sqlserver.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.sqlserver.Select().Count());
+ Assert.Equal(5, g.sqlserver.Select().Where(a => a.name.StartsWith("nick")).Count());
+ }
}
}
diff --git a/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlSelectTest.cs
index b98117d7..465996c9 100644
--- a/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlSelectTest.cs
@@ -1348,5 +1348,139 @@ namespace FreeSql.Tests.MySql
.Where(a => a.Tag.Id == tag1.Id || a.Tag.Id == tag2.Id)
.ToList(true);
}
+
+ public class ToDel1Pk
+ {
+ [Column(IsIdentity = true)]
+ public int id { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel2Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk2 { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel3Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public int pk2 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk3 { get; set; }
+ public string name { get; set; }
+ }
+ [Fact]
+ public void ToDelete()
+ {
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToDel1Pk{ name = "name1"},
+ new ToDel1Pk{ name = "name2"},
+ new ToDel1Pk{ name = "nick1"},
+ new ToDel1Pk{ name = "nick2"},
+ new ToDel1Pk{ name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.mysql.Select().Count());
+ Assert.Equal(3, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.mysql.Select().Count());
+ Assert.Equal(3, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.mysql.Select().Count());
+ Assert.Equal(3, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+ }
+
+ public class ToUpd1Pk
+ {
+ [Column(IsIdentity = true)]
+ public int id { get; set; }
+ public string name { get; set; }
+ }
+ public class ToUpd2Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk2 { get; set; }
+ public string name { get; set; }
+ }
+ public class ToUpd3Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public int pk2 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk3 { get; set; }
+ public string name { get; set; }
+ }
+ [Fact]
+ public void ToUpdate()
+ {
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToUpd1Pk{ name = "name1"},
+ new ToUpd1Pk{ name = "name2"},
+ new ToUpd1Pk{ name = "nick1"},
+ new ToUpd1Pk{ name = "nick2"},
+ new ToUpd1Pk{ name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.mysql.Select().Count());
+ Assert.Equal(5, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name1"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name2"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick1"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick2"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.mysql.Select().Count());
+ Assert.Equal(5, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.mysql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.mysql.Select().Count());
+ g.mysql.Insert(new[] {
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name1"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name2"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick1"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick2"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.mysql.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.mysql.Select().Count());
+ Assert.Equal(5, g.mysql.Select().Where(a => a.name.StartsWith("nick")).Count());
+ }
}
}
diff --git a/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleSelectTest.cs
index 137ddcc7..92ecbd0c 100644
--- a/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleSelectTest.cs
@@ -1232,5 +1232,139 @@ namespace FreeSql.Tests.Oracle
.Where(a => a.Tag.Id == tag1.Id || a.Tag.Id == tag2.Id)
.ToList(true);
}
+
+ public class ToDel1Pk
+ {
+ [Column(IsIdentity = true)]
+ public int id { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel2Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk2 { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel3Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public int pk2 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk3 { get; set; }
+ public string name { get; set; }
+ }
+ [Fact]
+ public void ToDelete()
+ {
+ g.oracle.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.oracle.Select().Count());
+ g.oracle.Insert(new[] {
+ new ToDel1Pk{ name = "name1"},
+ new ToDel1Pk{ name = "name2"},
+ new ToDel1Pk{ name = "nick1"},
+ new ToDel1Pk{ name = "nick2"},
+ new ToDel1Pk{ name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.oracle.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.oracle.Select().Count());
+ Assert.Equal(3, g.oracle.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.oracle.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.oracle.Select().Count());
+ g.oracle.Insert(new[] {
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.oracle.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.oracle.Select().Count());
+ Assert.Equal(3, g.oracle.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.oracle.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.oracle.Select().Count());
+ g.oracle.Insert(new[] {
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.oracle.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.oracle.Select().Count());
+ Assert.Equal(3, g.oracle.Select().Where(a => a.name.StartsWith("nick")).Count());
+ }
+
+ public class ToUpd1Pk
+ {
+ [Column(IsIdentity = true)]
+ public int id { get; set; }
+ public string name { get; set; }
+ }
+ public class ToUpd2Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk2 { get; set; }
+ public string name { get; set; }
+ }
+ public class ToUpd3Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public int pk2 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk3 { get; set; }
+ public string name { get; set; }
+ }
+ [Fact]
+ public void ToUpdate()
+ {
+ g.oracle.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.oracle.Select().Count());
+ g.oracle.Insert(new[] {
+ new ToUpd1Pk{ name = "name1"},
+ new ToUpd1Pk{ name = "name2"},
+ new ToUpd1Pk{ name = "nick1"},
+ new ToUpd1Pk{ name = "nick2"},
+ new ToUpd1Pk{ name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.oracle.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.oracle.Select().Count());
+ Assert.Equal(5, g.oracle.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.oracle.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.oracle.Select().Count());
+ g.oracle.Insert(new[] {
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name1"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name2"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick1"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick2"},
+ new ToUpd2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.oracle.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.oracle.Select().Count());
+ Assert.Equal(5, g.oracle.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.oracle.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.oracle.Select().Count());
+ g.oracle.Insert(new[] {
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name1"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name2"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick1"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick2"},
+ new ToUpd3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.oracle.Select().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ExecuteAffrows());
+ Assert.Equal(5, g.oracle.Select().Count());
+ Assert.Equal(5, g.oracle.Select().Where(a => a.name.StartsWith("nick")).Count());
+ }
}
}
diff --git a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLSelectTest.cs
index 585e7335..218713f8 100644
--- a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLSelectTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLSelectTest.cs
@@ -1306,5 +1306,139 @@ namespace FreeSql.Tests.PostgreSQL
.Where(a => a.Tag.Id == tag1.Id || a.Tag.Id == tag2.Id)
.ToList(true);
}
+
+ public class ToDel1Pk
+ {
+ [Column(IsIdentity = true)]
+ public int id { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel2Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk2 { get; set; }
+ public string name { get; set; }
+ }
+ public class ToDel3Pk
+ {
+ [Column(IsPrimary = true)]
+ public Guid pk1 { get; set; }
+ [Column(IsPrimary = true)]
+ public int pk2 { get; set; }
+ [Column(IsPrimary = true)]
+ public string pk3 { get; set; }
+ public string name { get; set; }
+ }
+ [Fact]
+ public void ToDelete()
+ {
+ g.pgsql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.pgsql.Select().Count());
+ g.pgsql.Insert(new[] {
+ new ToDel1Pk{ name = "name1"},
+ new ToDel1Pk{ name = "name2"},
+ new ToDel1Pk{ name = "nick1"},
+ new ToDel1Pk{ name = "nick2"},
+ new ToDel1Pk{ name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.pgsql.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.pgsql.Select().Count());
+ Assert.Equal(3, g.pgsql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.pgsql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.pgsql.Select().Count());
+ g.pgsql.Insert(new[] {
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "name2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick1"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick2"},
+ new ToDel2Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = "pk2", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.pgsql.Select().Where(a => a.name.StartsWith("name")).ToDelete().ExecuteAffrows());
+ Assert.Equal(3, g.pgsql.Select().Count());
+ Assert.Equal(3, g.pgsql.Select().Where(a => a.name.StartsWith("nick")).Count());
+
+ g.pgsql.Select().ToDelete().ExecuteAffrows();
+ Assert.Equal(0, g.pgsql.Select().Count());
+ g.pgsql.Insert(new[] {
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "name2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick1"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick2"},
+ new ToDel3Pk{ pk1 = FreeUtil.NewMongodbId(), pk2 = 1, pk3 = "pk3", name = "nick3"}
+ }).ExecuteAffrows();
+ Assert.Equal(2, g.pgsql.Select