diff --git a/AmalgamationTool/DynamORM.Amalgamation.cs b/AmalgamationTool/DynamORM.Amalgamation.cs
index aaefba5..2c6c78a 100644
--- a/AmalgamationTool/DynamORM.Amalgamation.cs
+++ b/AmalgamationTool/DynamORM.Amalgamation.cs
@@ -1932,6 +1932,31 @@ namespace DynamORM
return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)).As(alias));
}
+ /// Adds to the FROM clause using .
+ /// Type which can be represented in database.
+ /// use no lock.
+ /// This instance to permit chaining.
+ public virtual IDynamicSelectQueryBuilder From(bool noLock)
+ {
+ if (noLock)
+ return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)).NoLock());
+ else
+ return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)));
+ }
+
+ /// Adds to the FROM clause using .
+ /// Type which can be represented in database.
+ /// Table alias.
+ /// use no lock.
+ /// This instance to permit chaining.
+ public virtual IDynamicSelectQueryBuilder From(string alias, bool noLock)
+ {
+ if (noLock)
+ return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)).As(alias).NoLock());
+ else
+ return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)).As(alias));
+ }
+
/// Adds to the FROM clause using .
/// Type which can be represented in database.
/// This instance to permit chaining.
diff --git a/DynamORM.Tests/Select/ParserTests.cs b/DynamORM.Tests/Select/ParserTests.cs
index f7654de..a8c0f1e 100644
--- a/DynamORM.Tests/Select/ParserTests.cs
+++ b/DynamORM.Tests/Select/ParserTests.cs
@@ -29,6 +29,7 @@
using System.Linq;
using DynamORM.Builders;
using DynamORM.Builders.Implementation;
+using DynamORM.Tests.Helpers;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DynamORM.Tests.Select
@@ -75,6 +76,28 @@ namespace DynamORM.Tests.Select
Assert.AreEqual("SELECT * FROM \"dbo\".\"Users\"", cmd.CommandText());
}
+ ///
+ /// Tests from typed method.
+ ///
+ [TestMethod]
+ public void TestFromGetTyped()
+ {
+ IDynamicSelectQueryBuilder cmd = Database.From();
+
+ Assert.AreEqual("SELECT * FROM \"users\"", cmd.CommandText());
+ }
+
+ ///
+ /// Tests from typed method.
+ ///
+ [TestMethod]
+ public void TestFromGetTypedAs()
+ {
+ IDynamicSelectQueryBuilder cmd = Database.From("u");
+
+ Assert.AreEqual("SELECT * FROM \"users\" AS u", cmd.CommandText());
+ }
+
///
/// Tests from method with multi tables.
///
diff --git a/DynamORM/DynamicDatabase.cs b/DynamORM/DynamicDatabase.cs
index 639bc92..95bbfe5 100644
--- a/DynamORM/DynamicDatabase.cs
+++ b/DynamORM/DynamicDatabase.cs
@@ -381,6 +381,31 @@ namespace DynamORM
return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)).As(alias));
}
+ /// Adds to the FROM clause using .
+ /// Type which can be represented in database.
+ /// use no lock.
+ /// This instance to permit chaining.
+ public virtual IDynamicSelectQueryBuilder From(bool noLock)
+ {
+ if (noLock)
+ return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)).NoLock());
+ else
+ return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)));
+ }
+
+ /// Adds to the FROM clause using .
+ /// Type which can be represented in database.
+ /// Table alias.
+ /// use no lock.
+ /// This instance to permit chaining.
+ public virtual IDynamicSelectQueryBuilder From(string alias, bool noLock)
+ {
+ if (noLock)
+ return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)).As(alias).NoLock());
+ else
+ return new DynamicSelectQueryBuilder(this).From(x => x(typeof(T)).As(alias));
+ }
+
/// Adds to the FROM clause using .
/// Type which can be represented in database.
/// This instance to permit chaining.