Fix typed builder compatibility after rebase
This commit is contained in:
@@ -1932,7 +1932,30 @@ namespace DynamORM
|
|||||||
/// <param name="alias">Table alias.</param>
|
/// <param name="alias">Table alias.</param>
|
||||||
/// <param name="noLock">use no lock.</param>
|
/// <param name="noLock">use no lock.</param>
|
||||||
/// <returns>This instance to permit chaining.</returns>
|
/// <returns>This instance to permit chaining.</returns>
|
||||||
public virtual IDynamicTypedSelectQueryBuilder<T> From<T>(string alias = null, bool noLock = false)
|
public virtual IDynamicSelectQueryBuilder From<T>(string alias = null, bool noLock = false)
|
||||||
|
{
|
||||||
|
// TODO: Make it more readable and maitainable
|
||||||
|
if (noLock)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(alias))
|
||||||
|
return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)).NoLock());
|
||||||
|
else
|
||||||
|
return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)).As(alias).NoLock());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(alias))
|
||||||
|
return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)));
|
||||||
|
else
|
||||||
|
return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)).As(alias));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>Adds to the <code>FROM</code> clause using <see cref="Type"/>.</summary>
|
||||||
|
/// <typeparam name="T">Type which can be represented in database.</typeparam>
|
||||||
|
/// <param name="alias">Table alias.</param>
|
||||||
|
/// <param name="noLock">use no lock.</param>
|
||||||
|
/// <returns>This instance to permit chaining.</returns>
|
||||||
|
public virtual IDynamicTypedSelectQueryBuilder<T> FromTyped<T>(string alias = null, bool noLock = false)
|
||||||
{
|
{
|
||||||
// TODO: Make it more readable and maitainable
|
// TODO: Make it more readable and maitainable
|
||||||
DynamicTypedSelectQueryBuilder<T> builder = new DynamicTypedSelectQueryBuilder<T>(this);
|
DynamicTypedSelectQueryBuilder<T> builder = new DynamicTypedSelectQueryBuilder<T>(this);
|
||||||
@@ -1978,11 +2001,16 @@ namespace DynamORM
|
|||||||
/// <summary>Adds to the <code>INSERT INTO</code> clause using <see cref="Type"/>.</summary>
|
/// <summary>Adds to the <code>INSERT INTO</code> clause using <see cref="Type"/>.</summary>
|
||||||
/// <typeparam name="T">Type which can be represented in database.</typeparam>
|
/// <typeparam name="T">Type which can be represented in database.</typeparam>
|
||||||
/// <returns>This instance to permit chaining.</returns>
|
/// <returns>This instance to permit chaining.</returns>
|
||||||
public virtual IDynamicTypedInsertQueryBuilder<T> Insert<T>()
|
public virtual IDynamicInsertQueryBuilder Insert<T>()
|
||||||
{
|
{
|
||||||
DynamicTypedInsertQueryBuilder<T> builder = new DynamicTypedInsertQueryBuilder<T>(this);
|
return new DynamicInsertQueryBuilder(this).Table(typeof(T));
|
||||||
builder.Table(typeof(T));
|
}
|
||||||
return builder;
|
/// <summary>Adds to the <code>INSERT INTO</code> clause using <see cref="Type"/>.</summary>
|
||||||
|
/// <typeparam name="T">Type which can be represented in database.</typeparam>
|
||||||
|
/// <returns>This instance to permit chaining.</returns>
|
||||||
|
public virtual IDynamicTypedInsertQueryBuilder<T> InsertTyped<T>()
|
||||||
|
{
|
||||||
|
return new DynamicTypedInsertQueryBuilder<T>(this, true);
|
||||||
}
|
}
|
||||||
/// <summary>Adds to the <code>INSERT INTO</code> clause using <see cref="Type"/>.</summary>
|
/// <summary>Adds to the <code>INSERT INTO</code> clause using <see cref="Type"/>.</summary>
|
||||||
/// <param name="t">Type which can be represented in database.</param>
|
/// <param name="t">Type which can be represented in database.</param>
|
||||||
@@ -2080,11 +2108,16 @@ namespace DynamORM
|
|||||||
/// <summary>Adds to the <code>UPDATE</code> clause using <see cref="Type"/>.</summary>
|
/// <summary>Adds to the <code>UPDATE</code> clause using <see cref="Type"/>.</summary>
|
||||||
/// <typeparam name="T">Type which can be represented in database.</typeparam>
|
/// <typeparam name="T">Type which can be represented in database.</typeparam>
|
||||||
/// <returns>This instance to permit chaining.</returns>
|
/// <returns>This instance to permit chaining.</returns>
|
||||||
public virtual IDynamicTypedUpdateQueryBuilder<T> Update<T>()
|
public virtual IDynamicUpdateQueryBuilder Update<T>()
|
||||||
{
|
{
|
||||||
DynamicTypedUpdateQueryBuilder<T> builder = new DynamicTypedUpdateQueryBuilder<T>(this);
|
return new DynamicUpdateQueryBuilder(this).Table(typeof(T));
|
||||||
builder.Table(typeof(T));
|
}
|
||||||
return builder;
|
/// <summary>Adds to the <code>UPDATE</code> clause using <see cref="Type"/>.</summary>
|
||||||
|
/// <typeparam name="T">Type which can be represented in database.</typeparam>
|
||||||
|
/// <returns>This instance to permit chaining.</returns>
|
||||||
|
public virtual IDynamicTypedUpdateQueryBuilder<T> UpdateTyped<T>()
|
||||||
|
{
|
||||||
|
return new DynamicTypedUpdateQueryBuilder<T>(this, true);
|
||||||
}
|
}
|
||||||
/// <summary>Adds to the <code>UPDATE</code> clause using <see cref="Type"/>.</summary>
|
/// <summary>Adds to the <code>UPDATE</code> clause using <see cref="Type"/>.</summary>
|
||||||
/// <param name="t">Type which can be represented in database.</param>
|
/// <param name="t">Type which can be represented in database.</param>
|
||||||
@@ -2291,11 +2324,16 @@ namespace DynamORM
|
|||||||
/// <summary>Adds to the <code>DELETE FROM</code> clause using <see cref="Type"/>.</summary>
|
/// <summary>Adds to the <code>DELETE FROM</code> clause using <see cref="Type"/>.</summary>
|
||||||
/// <typeparam name="T">Type which can be represented in database.</typeparam>
|
/// <typeparam name="T">Type which can be represented in database.</typeparam>
|
||||||
/// <returns>This instance to permit chaining.</returns>
|
/// <returns>This instance to permit chaining.</returns>
|
||||||
public virtual IDynamicTypedDeleteQueryBuilder<T> Delete<T>()
|
public virtual IDynamicDeleteQueryBuilder Delete<T>()
|
||||||
{
|
{
|
||||||
DynamicTypedDeleteQueryBuilder<T> builder = new DynamicTypedDeleteQueryBuilder<T>(this);
|
return new DynamicDeleteQueryBuilder(this).Table(typeof(T));
|
||||||
builder.Table(typeof(T));
|
}
|
||||||
return builder;
|
/// <summary>Adds to the <code>DELETE FROM</code> clause using <see cref="Type"/>.</summary>
|
||||||
|
/// <typeparam name="T">Type which can be represented in database.</typeparam>
|
||||||
|
/// <returns>This instance to permit chaining.</returns>
|
||||||
|
public virtual IDynamicTypedDeleteQueryBuilder<T> DeleteTyped<T>()
|
||||||
|
{
|
||||||
|
return new DynamicTypedDeleteQueryBuilder<T>(this, true);
|
||||||
}
|
}
|
||||||
/// <summary>Adds to the <code>DELETE FROM</code> clause using <see cref="Type"/>.</summary>
|
/// <summary>Adds to the <code>DELETE FROM</code> clause using <see cref="Type"/>.</summary>
|
||||||
/// <param name="t">Type which can be represented in database.</param>
|
/// <param name="t">Type which can be represented in database.</param>
|
||||||
@@ -7210,18 +7248,6 @@ namespace DynamORM
|
|||||||
/// <returns>Builder instance.</returns>
|
/// <returns>Builder instance.</returns>
|
||||||
IDynamicTypedSelectQueryBuilder<T> Join<TRight>(Func<TypedJoinBuilder<T, TRight>, TypedJoinBuilder<T, TRight>> specification);
|
IDynamicTypedSelectQueryBuilder<T> Join<TRight>(Func<TypedJoinBuilder<T, TRight>, TypedJoinBuilder<T, TRight>> specification);
|
||||||
|
|
||||||
/// <summary>Add INNER JOIN using typed ON predicate.</summary>
|
|
||||||
IDynamicTypedSelectQueryBuilder<T> InnerJoin<TRight>(Expression<Func<T, TRight, bool>> on, string alias = null);
|
|
||||||
|
|
||||||
/// <summary>Add LEFT JOIN using typed ON predicate.</summary>
|
|
||||||
IDynamicTypedSelectQueryBuilder<T> LeftJoin<TRight>(Expression<Func<T, TRight, bool>> on, string alias = null);
|
|
||||||
|
|
||||||
/// <summary>Add RIGHT JOIN using typed ON predicate.</summary>
|
|
||||||
IDynamicTypedSelectQueryBuilder<T> RightJoin<TRight>(Expression<Func<T, TRight, bool>> on, string alias = null);
|
|
||||||
|
|
||||||
/// <summary>Add FULL JOIN using typed ON predicate.</summary>
|
|
||||||
IDynamicTypedSelectQueryBuilder<T> FullJoin<TRight>(Expression<Func<T, TRight, bool>> on, string alias = null);
|
|
||||||
|
|
||||||
/// <summary>Add typed where predicate using mapped properties.</summary>
|
/// <summary>Add typed where predicate using mapped properties.</summary>
|
||||||
/// <param name="predicate">Predicate to parse.</param>
|
/// <param name="predicate">Predicate to parse.</param>
|
||||||
/// <returns>Builder instance.</returns>
|
/// <returns>Builder instance.</returns>
|
||||||
@@ -10636,8 +10662,16 @@ namespace DynamORM
|
|||||||
internal class DynamicTypedDeleteQueryBuilder<T> : DynamicDeleteQueryBuilder, IDynamicTypedDeleteQueryBuilder<T>
|
internal class DynamicTypedDeleteQueryBuilder<T> : DynamicDeleteQueryBuilder, IDynamicTypedDeleteQueryBuilder<T>
|
||||||
{
|
{
|
||||||
internal DynamicTypedDeleteQueryBuilder(DynamicDatabase db)
|
internal DynamicTypedDeleteQueryBuilder(DynamicDatabase db)
|
||||||
|
: this(db, false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
internal DynamicTypedDeleteQueryBuilder(DynamicDatabase db, bool mapType)
|
||||||
: base(db)
|
: base(db)
|
||||||
{
|
{
|
||||||
|
if (mapType)
|
||||||
|
this.Table(typeof(T));
|
||||||
|
else
|
||||||
|
this.Table(typeof(T).Name);
|
||||||
}
|
}
|
||||||
public IDynamicTypedDeleteQueryBuilder<T> Where(Expression<Func<T, bool>> predicate)
|
public IDynamicTypedDeleteQueryBuilder<T> Where(Expression<Func<T, bool>> predicate)
|
||||||
{
|
{
|
||||||
@@ -10675,8 +10709,16 @@ namespace DynamORM
|
|||||||
internal class DynamicTypedInsertQueryBuilder<T> : DynamicInsertQueryBuilder, IDynamicTypedInsertQueryBuilder<T>
|
internal class DynamicTypedInsertQueryBuilder<T> : DynamicInsertQueryBuilder, IDynamicTypedInsertQueryBuilder<T>
|
||||||
{
|
{
|
||||||
internal DynamicTypedInsertQueryBuilder(DynamicDatabase db)
|
internal DynamicTypedInsertQueryBuilder(DynamicDatabase db)
|
||||||
|
: this(db, false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
internal DynamicTypedInsertQueryBuilder(DynamicDatabase db, bool mapType)
|
||||||
: base(db)
|
: base(db)
|
||||||
{
|
{
|
||||||
|
if (mapType)
|
||||||
|
this.Table(typeof(T));
|
||||||
|
else
|
||||||
|
this.Table(typeof(T).Name);
|
||||||
}
|
}
|
||||||
public IDynamicTypedInsertQueryBuilder<T> Insert<TValue>(Expression<Func<T, TValue>> selector, object value)
|
public IDynamicTypedInsertQueryBuilder<T> Insert<TValue>(Expression<Func<T, TValue>> selector, object value)
|
||||||
{
|
{
|
||||||
@@ -10810,22 +10852,6 @@ namespace DynamORM
|
|||||||
AppendJoinClause(joinExpr);
|
AppendJoinClause(joinExpr);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public IDynamicTypedSelectQueryBuilder<T> InnerJoin<TRight>(Expression<Func<T, TRight, bool>> on, string alias = null)
|
|
||||||
{
|
|
||||||
return Join(on, alias, DynamicJoinType.Inner);
|
|
||||||
}
|
|
||||||
public IDynamicTypedSelectQueryBuilder<T> LeftJoin<TRight>(Expression<Func<T, TRight, bool>> on, string alias = null)
|
|
||||||
{
|
|
||||||
return Join(on, alias, DynamicJoinType.Left);
|
|
||||||
}
|
|
||||||
public IDynamicTypedSelectQueryBuilder<T> RightJoin<TRight>(Expression<Func<T, TRight, bool>> on, string alias = null)
|
|
||||||
{
|
|
||||||
return Join(on, alias, DynamicJoinType.Right);
|
|
||||||
}
|
|
||||||
public IDynamicTypedSelectQueryBuilder<T> FullJoin<TRight>(Expression<Func<T, TRight, bool>> on, string alias = null)
|
|
||||||
{
|
|
||||||
return Join(on, alias, DynamicJoinType.Full);
|
|
||||||
}
|
|
||||||
public new IDynamicTypedSelectQueryBuilder<T> Join(params Func<dynamic, object>[] func)
|
public new IDynamicTypedSelectQueryBuilder<T> Join(params Func<dynamic, object>[] func)
|
||||||
{
|
{
|
||||||
base.Join(func);
|
base.Join(func);
|
||||||
@@ -11363,8 +11389,16 @@ namespace DynamORM
|
|||||||
internal class DynamicTypedUpdateQueryBuilder<T> : DynamicUpdateQueryBuilder, IDynamicTypedUpdateQueryBuilder<T>
|
internal class DynamicTypedUpdateQueryBuilder<T> : DynamicUpdateQueryBuilder, IDynamicTypedUpdateQueryBuilder<T>
|
||||||
{
|
{
|
||||||
internal DynamicTypedUpdateQueryBuilder(DynamicDatabase db)
|
internal DynamicTypedUpdateQueryBuilder(DynamicDatabase db)
|
||||||
|
: this(db, false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
internal DynamicTypedUpdateQueryBuilder(DynamicDatabase db, bool mapType)
|
||||||
: base(db)
|
: base(db)
|
||||||
{
|
{
|
||||||
|
if (mapType)
|
||||||
|
this.Table(typeof(T));
|
||||||
|
else
|
||||||
|
this.Table(typeof(T).Name);
|
||||||
}
|
}
|
||||||
public IDynamicTypedUpdateQueryBuilder<T> Where(Expression<Func<T, bool>> predicate)
|
public IDynamicTypedUpdateQueryBuilder<T> Where(Expression<Func<T, bool>> predicate)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ namespace DynamORM.Tests.Select
|
|||||||
public void TestTypedRightJoin()
|
public void TestTypedRightJoin()
|
||||||
{
|
{
|
||||||
var cmd = Database.FromTyped<TypedFluentUser>("u")
|
var cmd = Database.FromTyped<TypedFluentUser>("u")
|
||||||
.Join<TypedFluentUser>(j => j.Right().As("X").On((l, r) => l.Id == r.Id))
|
.Join<TypedFluentUser>(j => j.Right().As("x").On((l, r) => l.Id == r.Id))
|
||||||
.Select(u => u.Id);
|
.Select(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\")",
|
Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u RIGHT JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")",
|
||||||
@@ -132,7 +132,7 @@ namespace DynamORM.Tests.Select
|
|||||||
public void TestTypedFullJoin()
|
public void TestTypedFullJoin()
|
||||||
{
|
{
|
||||||
var cmd = Database.FromTyped<TypedFluentUser>("u")
|
var cmd = Database.FromTyped<TypedFluentUser>("u")
|
||||||
.Join<TypedFluentUser>(j => j.Full().As("X").On((l, r) => l.Id == r.Id))
|
.Join<TypedFluentUser>(j => j.Full().As("x").On((l, r) => l.Id == r.Id))
|
||||||
.Select(u => u.Id);
|
.Select(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\")",
|
Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u FULL JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")",
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ namespace DynamORM.Tests.Select
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestTypedJoinDefaultJoinKeyword()
|
public void TestTypedJoinDefaultJoinKeyword()
|
||||||
{
|
{
|
||||||
var cmd = Database.From<TypedJoinUser>("usr")
|
var cmd = Database.FromTyped<TypedJoinUser>("usr")
|
||||||
.Join<TypedJoinUserClient>(j => j.As("uc").On((u, c) => u.IdUser == c.UserId));
|
.Join<TypedJoinUserClient>(j => j.As("uc").On((u, c) => u.IdUser == c.UserId));
|
||||||
|
|
||||||
Assert.AreEqual("SELECT * FROM \"dbo\".\"Users\" AS usr JOIN \"dbo\".\"UserClients\" AS uc ON (usr.\"Id_User\" = uc.\"User_Id\")", cmd.CommandText());
|
Assert.AreEqual("SELECT * FROM \"dbo\".\"Users\" AS usr JOIN \"dbo\".\"UserClients\" AS uc ON (usr.\"Id_User\" = uc.\"User_Id\")", cmd.CommandText());
|
||||||
@@ -42,7 +42,7 @@ namespace DynamORM.Tests.Select
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestTypedInnerJoinWithAndNull()
|
public void TestTypedInnerJoinWithAndNull()
|
||||||
{
|
{
|
||||||
var cmd = Database.From<TypedJoinUser>("usr")
|
var cmd = Database.FromTyped<TypedJoinUser>("usr")
|
||||||
.Join<TypedJoinUserClient>(j => j.Inner().As("uc").On((u, c) => u.IdUser == c.UserId && c.Users != null))
|
.Join<TypedJoinUserClient>(j => j.Inner().As("uc").On((u, c) => u.IdUser == c.UserId && c.Users != null))
|
||||||
.Select(u => u.IdUser);
|
.Select(u => u.IdUser);
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ namespace DynamORM.Tests.Select
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestTypedJoinWithNoLock()
|
public void TestTypedJoinWithNoLock()
|
||||||
{
|
{
|
||||||
var cmd = Database.From<TypedJoinUser>("usr", noLock: true)
|
var cmd = Database.FromTyped<TypedJoinUser>("usr", noLock: true)
|
||||||
.Join<TypedJoinUserClient>(j => j.Inner().As("uc").NoLock().On((u, c) => u.IdUser == c.UserId));
|
.Join<TypedJoinUserClient>(j => j.Inner().As("uc").NoLock().On((u, c) => u.IdUser == c.UserId));
|
||||||
|
|
||||||
Assert.AreEqual("SELECT * FROM \"dbo\".\"Users\" AS usr WITH(NOLOCK) INNER JOIN \"dbo\".\"UserClients\" AS uc WITH(NOLOCK) ON (usr.\"Id_User\" = uc.\"User_Id\")", cmd.CommandText());
|
Assert.AreEqual("SELECT * FROM \"dbo\".\"Users\" AS usr WITH(NOLOCK) INNER JOIN \"dbo\".\"UserClients\" AS uc WITH(NOLOCK) ON (usr.\"Id_User\" = uc.\"User_Id\")", cmd.CommandText());
|
||||||
@@ -61,7 +61,7 @@ namespace DynamORM.Tests.Select
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestTypedLeftOuterJoin()
|
public void TestTypedLeftOuterJoin()
|
||||||
{
|
{
|
||||||
var cmd = Database.From<TypedJoinUser>("usr")
|
var cmd = Database.FromTyped<TypedJoinUser>("usr")
|
||||||
.Join<TypedJoinUserClient>(j => j.LeftOuter().As("uc").On((u, c) => u.IdUser == c.UserId));
|
.Join<TypedJoinUserClient>(j => j.LeftOuter().As("uc").On((u, c) => u.IdUser == c.UserId));
|
||||||
|
|
||||||
Assert.AreEqual("SELECT * FROM \"dbo\".\"Users\" AS usr LEFT OUTER JOIN \"dbo\".\"UserClients\" AS uc ON (usr.\"Id_User\" = uc.\"User_Id\")", cmd.CommandText());
|
Assert.AreEqual("SELECT * FROM \"dbo\".\"Users\" AS usr LEFT OUTER JOIN \"dbo\".\"UserClients\" AS uc ON (usr.\"Id_User\" = uc.\"User_Id\")", cmd.CommandText());
|
||||||
@@ -70,7 +70,7 @@ namespace DynamORM.Tests.Select
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestTypedRightOuterJoin()
|
public void TestTypedRightOuterJoin()
|
||||||
{
|
{
|
||||||
var cmd = Database.From<TypedJoinUser>("usr")
|
var cmd = Database.FromTyped<TypedJoinUser>("usr")
|
||||||
.Join<TypedJoinUserClient>(j => j.RightOuter().As("uc").On((u, c) => u.IdUser == c.UserId));
|
.Join<TypedJoinUserClient>(j => j.RightOuter().As("uc").On((u, c) => u.IdUser == c.UserId));
|
||||||
|
|
||||||
Assert.AreEqual("SELECT * FROM \"dbo\".\"Users\" AS usr RIGHT OUTER JOIN \"dbo\".\"UserClients\" AS uc ON (usr.\"Id_User\" = uc.\"User_Id\")", cmd.CommandText());
|
Assert.AreEqual("SELECT * FROM \"dbo\".\"Users\" AS usr RIGHT OUTER JOIN \"dbo\".\"UserClients\" AS uc ON (usr.\"Id_User\" = uc.\"User_Id\")", cmd.CommandText());
|
||||||
@@ -79,7 +79,7 @@ namespace DynamORM.Tests.Select
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestTypedCustomJoinTypeCrossApply()
|
public void TestTypedCustomJoinTypeCrossApply()
|
||||||
{
|
{
|
||||||
var cmd = Database.From<TypedJoinUser>("usr")
|
var cmd = Database.FromTyped<TypedJoinUser>("usr")
|
||||||
.Join<TypedJoinUserClient>(j => j.Type("CROSS APPLY").As("uc"));
|
.Join<TypedJoinUserClient>(j => j.Type("CROSS APPLY").As("uc"));
|
||||||
|
|
||||||
Assert.AreEqual("SELECT * FROM \"dbo\".\"Users\" AS usr CROSS APPLY \"dbo\".\"UserClients\" AS uc", cmd.CommandText());
|
Assert.AreEqual("SELECT * FROM \"dbo\".\"Users\" AS usr CROSS APPLY \"dbo\".\"UserClients\" AS uc", cmd.CommandText());
|
||||||
@@ -88,7 +88,7 @@ namespace DynamORM.Tests.Select
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestTypedJoinAndWhereParameterOrder()
|
public void TestTypedJoinAndWhereParameterOrder()
|
||||||
{
|
{
|
||||||
var cmd = Database.From<TypedJoinUser>("usr")
|
var cmd = Database.FromTyped<TypedJoinUser>("usr")
|
||||||
.Join<TypedJoinUserClient>(j => j.As("uc").On((u, c) => u.IdUser == c.UserId && c.Deleted == 0))
|
.Join<TypedJoinUserClient>(j => j.As("uc").On((u, c) => u.IdUser == c.UserId && c.Deleted == 0))
|
||||||
.Where(u => u.Active == 1);
|
.Where(u => u.Active == 1);
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
|
using DynamORM.Builders.Extensions;
|
||||||
|
|
||||||
namespace DynamORM.Builders.Implementation
|
namespace DynamORM.Builders.Implementation
|
||||||
{
|
{
|
||||||
@@ -14,8 +15,17 @@ namespace DynamORM.Builders.Implementation
|
|||||||
internal class DynamicTypedDeleteQueryBuilder<T> : DynamicDeleteQueryBuilder, IDynamicTypedDeleteQueryBuilder<T>
|
internal class DynamicTypedDeleteQueryBuilder<T> : DynamicDeleteQueryBuilder, IDynamicTypedDeleteQueryBuilder<T>
|
||||||
{
|
{
|
||||||
internal DynamicTypedDeleteQueryBuilder(DynamicDatabase db)
|
internal DynamicTypedDeleteQueryBuilder(DynamicDatabase db)
|
||||||
|
: this(db, false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
internal DynamicTypedDeleteQueryBuilder(DynamicDatabase db, bool mapType)
|
||||||
: base(db)
|
: base(db)
|
||||||
{
|
{
|
||||||
|
if (mapType)
|
||||||
|
this.Table(typeof(T));
|
||||||
|
else
|
||||||
|
this.Table(typeof(T).Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IDynamicTypedDeleteQueryBuilder<T> Where(Expression<Func<T, bool>> predicate)
|
public IDynamicTypedDeleteQueryBuilder<T> Where(Expression<Func<T, bool>> predicate)
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
|
using DynamORM.Builders.Extensions;
|
||||||
|
|
||||||
namespace DynamORM.Builders.Implementation
|
namespace DynamORM.Builders.Implementation
|
||||||
{
|
{
|
||||||
@@ -14,8 +15,17 @@ namespace DynamORM.Builders.Implementation
|
|||||||
internal class DynamicTypedInsertQueryBuilder<T> : DynamicInsertQueryBuilder, IDynamicTypedInsertQueryBuilder<T>
|
internal class DynamicTypedInsertQueryBuilder<T> : DynamicInsertQueryBuilder, IDynamicTypedInsertQueryBuilder<T>
|
||||||
{
|
{
|
||||||
internal DynamicTypedInsertQueryBuilder(DynamicDatabase db)
|
internal DynamicTypedInsertQueryBuilder(DynamicDatabase db)
|
||||||
|
: this(db, false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
internal DynamicTypedInsertQueryBuilder(DynamicDatabase db, bool mapType)
|
||||||
: base(db)
|
: base(db)
|
||||||
{
|
{
|
||||||
|
if (mapType)
|
||||||
|
this.Table(typeof(T));
|
||||||
|
else
|
||||||
|
this.Table(typeof(T).Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IDynamicTypedInsertQueryBuilder<T> Insert<TValue>(Expression<Func<T, TValue>> selector, object value)
|
public IDynamicTypedInsertQueryBuilder<T> Insert<TValue>(Expression<Func<T, TValue>> selector, object value)
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
|
using DynamORM.Builders.Extensions;
|
||||||
|
|
||||||
namespace DynamORM.Builders.Implementation
|
namespace DynamORM.Builders.Implementation
|
||||||
{
|
{
|
||||||
@@ -14,8 +15,17 @@ namespace DynamORM.Builders.Implementation
|
|||||||
internal class DynamicTypedUpdateQueryBuilder<T> : DynamicUpdateQueryBuilder, IDynamicTypedUpdateQueryBuilder<T>
|
internal class DynamicTypedUpdateQueryBuilder<T> : DynamicUpdateQueryBuilder, IDynamicTypedUpdateQueryBuilder<T>
|
||||||
{
|
{
|
||||||
internal DynamicTypedUpdateQueryBuilder(DynamicDatabase db)
|
internal DynamicTypedUpdateQueryBuilder(DynamicDatabase db)
|
||||||
|
: this(db, false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
internal DynamicTypedUpdateQueryBuilder(DynamicDatabase db, bool mapType)
|
||||||
: base(db)
|
: base(db)
|
||||||
{
|
{
|
||||||
|
if (mapType)
|
||||||
|
this.Table(typeof(T));
|
||||||
|
else
|
||||||
|
this.Table(typeof(T).Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IDynamicTypedUpdateQueryBuilder<T> Where(Expression<Func<T, bool>> predicate)
|
public IDynamicTypedUpdateQueryBuilder<T> Where(Expression<Func<T, bool>> predicate)
|
||||||
|
|||||||
@@ -535,12 +535,10 @@ namespace DynamORM
|
|||||||
/// <summary>Adds to the <code>INSERT INTO</code> clause using <see cref="Type"/>.</summary>
|
/// <summary>Adds to the <code>INSERT INTO</code> clause using <see cref="Type"/>.</summary>
|
||||||
/// <typeparam name="T">Type which can be represented in database.</typeparam>
|
/// <typeparam name="T">Type which can be represented in database.</typeparam>
|
||||||
/// <returns>This instance to permit chaining.</returns>
|
/// <returns>This instance to permit chaining.</returns>
|
||||||
public virtual IDynamicTypedInsertQueryBuilder<T> InsertTyped<T>()
|
public virtual IDynamicTypedInsertQueryBuilder<T> InsertTyped<T>()
|
||||||
{
|
{
|
||||||
DynamicTypedInsertQueryBuilder<T> builder = new DynamicTypedInsertQueryBuilder<T>(this);
|
return new DynamicTypedInsertQueryBuilder<T>(this, true);
|
||||||
builder.Table(typeof(T));
|
}
|
||||||
return builder;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Adds to the <code>INSERT INTO</code> clause using <see cref="Type"/>.</summary>
|
/// <summary>Adds to the <code>INSERT INTO</code> clause using <see cref="Type"/>.</summary>
|
||||||
/// <param name="t">Type which can be represented in database.</param>
|
/// <param name="t">Type which can be represented in database.</param>
|
||||||
@@ -652,12 +650,10 @@ namespace DynamORM
|
|||||||
/// <summary>Adds to the <code>UPDATE</code> clause using <see cref="Type"/>.</summary>
|
/// <summary>Adds to the <code>UPDATE</code> clause using <see cref="Type"/>.</summary>
|
||||||
/// <typeparam name="T">Type which can be represented in database.</typeparam>
|
/// <typeparam name="T">Type which can be represented in database.</typeparam>
|
||||||
/// <returns>This instance to permit chaining.</returns>
|
/// <returns>This instance to permit chaining.</returns>
|
||||||
public virtual IDynamicTypedUpdateQueryBuilder<T> UpdateTyped<T>()
|
public virtual IDynamicTypedUpdateQueryBuilder<T> UpdateTyped<T>()
|
||||||
{
|
{
|
||||||
DynamicTypedUpdateQueryBuilder<T> builder = new DynamicTypedUpdateQueryBuilder<T>(this);
|
return new DynamicTypedUpdateQueryBuilder<T>(this, true);
|
||||||
builder.Table(typeof(T));
|
}
|
||||||
return builder;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Adds to the <code>UPDATE</code> clause using <see cref="Type"/>.</summary>
|
/// <summary>Adds to the <code>UPDATE</code> clause using <see cref="Type"/>.</summary>
|
||||||
/// <param name="t">Type which can be represented in database.</param>
|
/// <param name="t">Type which can be represented in database.</param>
|
||||||
@@ -883,12 +879,10 @@ namespace DynamORM
|
|||||||
/// <summary>Adds to the <code>DELETE FROM</code> clause using <see cref="Type"/>.</summary>
|
/// <summary>Adds to the <code>DELETE FROM</code> clause using <see cref="Type"/>.</summary>
|
||||||
/// <typeparam name="T">Type which can be represented in database.</typeparam>
|
/// <typeparam name="T">Type which can be represented in database.</typeparam>
|
||||||
/// <returns>This instance to permit chaining.</returns>
|
/// <returns>This instance to permit chaining.</returns>
|
||||||
public virtual IDynamicTypedDeleteQueryBuilder<T> DeleteTyped<T>()
|
public virtual IDynamicTypedDeleteQueryBuilder<T> DeleteTyped<T>()
|
||||||
{
|
{
|
||||||
DynamicTypedDeleteQueryBuilder<T> builder = new DynamicTypedDeleteQueryBuilder<T>(this);
|
return new DynamicTypedDeleteQueryBuilder<T>(this, true);
|
||||||
builder.Table(typeof(T));
|
}
|
||||||
return builder;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Adds to the <code>DELETE FROM</code> clause using <see cref="Type"/>.</summary>
|
/// <summary>Adds to the <code>DELETE FROM</code> clause using <see cref="Type"/>.</summary>
|
||||||
/// <param name="t">Type which can be represented in database.</param>
|
/// <param name="t">Type which can be represented in database.</param>
|
||||||
|
|||||||
Reference in New Issue
Block a user