Add typed insert/update/delete builders and typed join variants

This commit is contained in:
root
2026-02-26 18:35:49 +01:00
parent 40a3907570
commit 33cadaf05b
14 changed files with 930 additions and 146 deletions

View File

@@ -47,6 +47,21 @@ namespace DynamORM.Tests.Modify
cmd.CommandText());
}
[Test]
public void TestTypedUpdateBuilderSetAndWhere()
{
var cmd = Database.Update<Users>()
.Set(u => u.Code, "778")
.Where(u => u.Id == 1 && u.Code == "1");
Assert.AreEqual(
string.Format("UPDATE \"sample_users\" SET \"code\" = [${0}] WHERE (\"id\" = [${1}]) AND (\"code\" = [${2}])",
cmd.Parameters.Keys.ElementAt(0),
cmd.Parameters.Keys.ElementAt(1),
cmd.Parameters.Keys.ElementAt(2)),
cmd.CommandText());
}
[Test]
public void TestTypedDeleteWhere()
{
@@ -58,6 +73,17 @@ namespace DynamORM.Tests.Modify
cmd.CommandText());
}
[Test]
public void TestTypedDeleteBuilderWhere()
{
var cmd = Database.Delete<Users>()
.Where(u => u.Id == 3);
Assert.AreEqual(
string.Format("DELETE FROM \"sample_users\" WHERE (\"id\" = [${0}])", cmd.Parameters.Keys.First()),
cmd.CommandText());
}
[Test]
public void TestTypedInsertColumns()
{
@@ -71,5 +97,19 @@ namespace DynamORM.Tests.Modify
cmd.Parameters.Keys.ElementAt(1)),
cmd.CommandText());
}
[Test]
public void TestTypedInsertBuilderColumns()
{
var cmd = Database.Insert<Users>()
.Insert(u => u.Code, "901")
.Insert(u => u.First, "TypedB");
Assert.AreEqual(
string.Format("INSERT INTO \"sample_users\" (\"code\", \"first\") VALUES ([${0}], [${1}])",
cmd.Parameters.Keys.ElementAt(0),
cmd.Parameters.Keys.ElementAt(1)),
cmd.CommandText());
}
}
}