Made single From<T>(...) method. Not preety but more practical
This commit is contained in:
@@ -2000,46 +2000,28 @@ namespace DynamORM
|
|||||||
return new DynamicSelectQueryBuilder(this).From(fn);
|
return new DynamicSelectQueryBuilder(this).From(fn);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Adds to the <code>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 IDynamicSelectQueryBuilder From<T>()
|
|
||||||
{
|
|
||||||
return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <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>
|
|
||||||
/// <returns>This instance to permit chaining.</returns>
|
|
||||||
public virtual IDynamicSelectQueryBuilder From<T>(string alias)
|
|
||||||
{
|
|
||||||
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="noLock">use no lock.</param>
|
|
||||||
/// <returns>This instance to permit chaining.</returns>
|
|
||||||
public virtual IDynamicSelectQueryBuilder From<T>(bool noLock)
|
|
||||||
{
|
|
||||||
if (noLock)
|
|
||||||
return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)).NoLock());
|
|
||||||
else
|
|
||||||
return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Adds to the <code>FROM</code> clause using <see cref="Type"/>.</summary>
|
/// <summary>Adds to the <code>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>
|
||||||
/// <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 IDynamicSelectQueryBuilder From<T>(string alias, bool noLock)
|
public virtual IDynamicSelectQueryBuilder From<T>(string alias = null, bool noLock = false)
|
||||||
{
|
{
|
||||||
|
// TODO: Make it more readable and maitainable
|
||||||
if (noLock)
|
if (noLock)
|
||||||
return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)).As(alias).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
|
else
|
||||||
return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)).As(alias));
|
{
|
||||||
|
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>
|
/// <summary>Adds to the <code>FROM</code> clause using <see cref="Type"/>.</summary>
|
||||||
@@ -4523,7 +4505,7 @@ namespace DynamORM
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (method != null)
|
if (method != null)
|
||||||
ret = o.ToString().TryParseDefault<T>(defaultValue, delegate (string v, out T r)
|
ret = o.ToString().TryParseDefault<T>(defaultValue, delegate(string v, out T r)
|
||||||
{
|
{
|
||||||
r = defaultValue;
|
r = defaultValue;
|
||||||
return (bool)method.Invoke(null, new object[] { v, r });
|
return (bool)method.Invoke(null, new object[] { v, r });
|
||||||
@@ -4582,7 +4564,7 @@ namespace DynamORM
|
|||||||
else if (typeof(T) == typeof(object))
|
else if (typeof(T) == typeof(object))
|
||||||
ret = (T)o;
|
ret = (T)o;
|
||||||
else if (method != null)
|
else if (method != null)
|
||||||
ret = o.ToString().TryParseDefault<T>(defaultValue, delegate (string v, out T r)
|
ret = o.ToString().TryParseDefault<T>(defaultValue, delegate(string v, out T r)
|
||||||
{
|
{
|
||||||
r = defaultValue;
|
r = defaultValue;
|
||||||
return (bool)method.Invoke(null, new object[] { v, r });
|
return (bool)method.Invoke(null, new object[] { v, r });
|
||||||
@@ -4643,7 +4625,7 @@ namespace DynamORM
|
|||||||
param.Scale,
|
param.Scale,
|
||||||
param.Precision,
|
param.Precision,
|
||||||
param.Scale,
|
param.Scale,
|
||||||
param.Value is byte[]? ConvertByteArrayToHexString((byte[])param.Value) : param.Value ?? "NULL",
|
param.Value is byte[] ? ConvertByteArrayToHexString((byte[])param.Value) : param.Value ?? "NULL",
|
||||||
param.Value != null ? param.Value.GetType().Name : "DBNull");
|
param.Value != null ? param.Value.GetType().Name : "DBNull");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7289,7 +7271,7 @@ namespace DynamORM
|
|||||||
/// <returns>Result of a query.</returns>
|
/// <returns>Result of a query.</returns>
|
||||||
object Scalar();
|
object Scalar();
|
||||||
|
|
||||||
#if !DYNAMORM_OMMIT_GENERICEXECUTION && !DYNAMORM_OMMIT_TRYPARSE
|
#if !DYNAMORM_OMMIT_GENERICEXECUTION && !DYNAMORM_OMMIT_TRYPARSE
|
||||||
|
|
||||||
/// <summary>Returns a single result.</summary>
|
/// <summary>Returns a single result.</summary>
|
||||||
/// <typeparam name="T">Type to parse to.</typeparam>
|
/// <typeparam name="T">Type to parse to.</typeparam>
|
||||||
@@ -7297,7 +7279,7 @@ namespace DynamORM
|
|||||||
/// <returns>Result of a query.</returns>
|
/// <returns>Result of a query.</returns>
|
||||||
T ScalarAs<T>(T defaultValue = default(T));
|
T ScalarAs<T>(T defaultValue = default(T));
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#region From/Join
|
#region From/Join
|
||||||
|
|
||||||
@@ -9676,7 +9658,7 @@ namespace DynamORM
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !DYNAMORM_OMMIT_GENERICEXECUTION && !DYNAMORM_OMMIT_TRYPARSE
|
#if !DYNAMORM_OMMIT_GENERICEXECUTION && !DYNAMORM_OMMIT_TRYPARSE
|
||||||
|
|
||||||
/// <summary>Returns a single result.</summary>
|
/// <summary>Returns a single result.</summary>
|
||||||
/// <typeparam name="T">Type to parse to.</typeparam>
|
/// <typeparam name="T">Type to parse to.</typeparam>
|
||||||
@@ -9693,7 +9675,7 @@ namespace DynamORM
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endregion Execution
|
#endregion Execution
|
||||||
|
|
||||||
@@ -11820,7 +11802,7 @@ namespace DynamORM
|
|||||||
func(obj) : elseFunc != null ? elseFunc() : default(R);
|
func(obj) : elseFunc != null ? elseFunc() : default(R);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !NET6_0_OR_GREATER
|
#if !NET6_0_OR_GREATER
|
||||||
/// <summary>Simple distinct by selector extension.</summary>
|
/// <summary>Simple distinct by selector extension.</summary>
|
||||||
/// <returns>The enumerator of elements distinct by specified selector.</returns>
|
/// <returns>The enumerator of elements distinct by specified selector.</returns>
|
||||||
/// <param name="source">Source collection.</param>
|
/// <param name="source">Source collection.</param>
|
||||||
@@ -11834,7 +11816,7 @@ namespace DynamORM
|
|||||||
if (seenKeys.Add(keySelector(element)))
|
if (seenKeys.Add(keySelector(element)))
|
||||||
yield return element;
|
yield return element;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace Dynamics
|
namespace Dynamics
|
||||||
@@ -15104,7 +15086,8 @@ namespace DynamORM
|
|||||||
public object Value { get; internal set; }
|
public object Value { get; internal set; }
|
||||||
|
|
||||||
/// <summary>Gets the result.</summary>
|
/// <summary>Gets the result.</summary>
|
||||||
public ValidateResult Result { get; internal set; }
|
public ValidateResult Result { get;internal set;}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -448,46 +448,28 @@ namespace DynamORM
|
|||||||
return new DynamicSelectQueryBuilder(this).From(fn);
|
return new DynamicSelectQueryBuilder(this).From(fn);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Adds to the <code>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 IDynamicSelectQueryBuilder From<T>()
|
|
||||||
{
|
|
||||||
return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <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>
|
|
||||||
/// <returns>This instance to permit chaining.</returns>
|
|
||||||
public virtual IDynamicSelectQueryBuilder From<T>(string alias)
|
|
||||||
{
|
|
||||||
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="noLock">use no lock.</param>
|
|
||||||
/// <returns>This instance to permit chaining.</returns>
|
|
||||||
public virtual IDynamicSelectQueryBuilder From<T>(bool noLock)
|
|
||||||
{
|
|
||||||
if (noLock)
|
|
||||||
return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)).NoLock());
|
|
||||||
else
|
|
||||||
return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Adds to the <code>FROM</code> clause using <see cref="Type"/>.</summary>
|
/// <summary>Adds to the <code>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>
|
||||||
/// <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 IDynamicSelectQueryBuilder From<T>(string alias, bool noLock)
|
public virtual IDynamicSelectQueryBuilder From<T>(string alias = null, bool noLock = false)
|
||||||
{
|
{
|
||||||
|
// TODO: Make it more readable and maitainable
|
||||||
if (noLock)
|
if (noLock)
|
||||||
return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)).As(alias).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
|
else
|
||||||
return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)).As(alias));
|
{
|
||||||
|
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>
|
/// <summary>Adds to the <code>FROM</code> clause using <see cref="Type"/>.</summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user