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

@@ -100,11 +100,44 @@ namespace DynamORM.Tests.Select
public void TestTypedJoin()
{
var cmd = Database.From<TypedFluentUser>("u")
.JoinTyped<TypedFluentUser, TypedFluentUser>("x", (l, r) => l.Id == r.Id)
.Join<TypedFluentUser>((l, r) => l.Id == r.Id, "x")
.SelectTyped(u => u.Id);
Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u INNER JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")",
cmd.CommandText());
}
[Test]
public void TestTypedLeftJoin()
{
var cmd = Database.From<TypedFluentUser>("u")
.LeftJoin<TypedFluentUser>((l, r) => l.Id == r.Id, "x")
.SelectTyped(u => u.Id);
Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u LEFT JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")",
cmd.CommandText());
}
[Test]
public void TestTypedRightJoin()
{
var cmd = Database.From<TypedFluentUser>("u")
.RightJoin<TypedFluentUser>((l, r) => l.Id == r.Id, "x")
.SelectTyped(u => u.Id);
Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u RIGHT JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")",
cmd.CommandText());
}
[Test]
public void TestTypedFullJoin()
{
var cmd = Database.From<TypedFluentUser>("u")
.FullJoin<TypedFluentUser>((l, r) => l.Id == r.Id, "x")
.SelectTyped(u => u.Id);
Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u FULL JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")",
cmd.CommandText());
}
}
}