diff --git a/src/NHibernate.Test/Async/NHSpecificTest/NH1275/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/NH1275/Fixture.cs
index 57ecaea5761..5503e4bb9db 100644
--- a/src/NHibernate.Test/Async/NHSpecificTest/NH1275/Fixture.cs
+++ b/src/NHibernate.Test/Async/NHSpecificTest/NH1275/Fixture.cs
@@ -53,6 +53,13 @@ public async Task RetrievingAsync()
string sql = sqlLogSpy.Appender.GetEvents()[0].RenderedMessage;
Assert.That(sql.IndexOf(Dialect.ForUpdateString, StringComparison.Ordinal), Is.GreaterThan(0));
}
+ s.Clear();
+ using (SqlLogSpy sqlLogSpy = new SqlLogSpy())
+ {
+ await (s.GetAsync(typeof(A).FullName, savedId, LockMode.Upgrade));
+ string sql = sqlLogSpy.Appender.GetEvents()[0].RenderedMessage;
+ Assert.That(sql.IndexOf(Dialect.ForUpdateString, StringComparison.Ordinal), Is.GreaterThan(0));
+ }
using (SqlLogSpy sqlLogSpy = new SqlLogSpy())
{
await (s.CreateQuery("from A a where a.Id= :pid").SetLockMode("a", LockMode.Upgrade).SetParameter("pid", savedId).
diff --git a/src/NHibernate.Test/NHSpecificTest/NH1275/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH1275/Fixture.cs
index 350b40f4dc9..4318dc5839f 100644
--- a/src/NHibernate.Test/NHSpecificTest/NH1275/Fixture.cs
+++ b/src/NHibernate.Test/NHSpecificTest/NH1275/Fixture.cs
@@ -42,6 +42,13 @@ public void Retrieving()
string sql = sqlLogSpy.Appender.GetEvents()[0].RenderedMessage;
Assert.That(sql.IndexOf(Dialect.ForUpdateString, StringComparison.Ordinal), Is.GreaterThan(0));
}
+ s.Clear();
+ using (SqlLogSpy sqlLogSpy = new SqlLogSpy())
+ {
+ s.Get(typeof(A).FullName, savedId, LockMode.Upgrade);
+ string sql = sqlLogSpy.Appender.GetEvents()[0].RenderedMessage;
+ Assert.That(sql.IndexOf(Dialect.ForUpdateString, StringComparison.Ordinal), Is.GreaterThan(0));
+ }
using (SqlLogSpy sqlLogSpy = new SqlLogSpy())
{
s.CreateQuery("from A a where a.Id= :pid").SetLockMode("a", LockMode.Upgrade).SetParameter("pid", savedId).
diff --git a/src/NHibernate/Async/ISession.cs b/src/NHibernate/Async/ISession.cs
index fbe6f6d19a6..71cf958c903 100644
--- a/src/NHibernate/Async/ISession.cs
+++ b/src/NHibernate/Async/ISession.cs
@@ -26,6 +26,76 @@ namespace NHibernate
{
using System.Threading.Tasks;
using System.Threading;
+ public static partial class SessionExtensions
+ {
+
+ ///
+ /// Return the persistent instance of the given entity class with the given identifier, or null
+ /// if there is no such persistent instance. (If the instance, or a proxy for the instance, is
+ /// already associated with the session, return that instance or proxy.)
+ ///
+ /// The session.
+ /// The entity name.
+ /// The entity identifier.
+ /// The lock mode to use for getting the entity.
+ /// A cancellation token that can be used to cancel the work
+ /// A persistent instance, or .
+ public static Task