diff --git a/src/NHibernate.DomainModel/Northwind/Entities/Order.cs b/src/NHibernate.DomainModel/Northwind/Entities/Order.cs
index ea01182d4c5..cdf7f7387a5 100755
--- a/src/NHibernate.DomainModel/Northwind/Entities/Order.cs
+++ b/src/NHibernate.DomainModel/Northwind/Entities/Order.cs
@@ -47,6 +47,8 @@ public virtual DateTime? OrderDate
set { _orderDate = value; }
}
+ public virtual DateTime RequiredOrderDate { get; set; }
+
public virtual DateTime? RequiredDate
{
get { return _requiredDate; }
@@ -106,4 +108,4 @@ public virtual void RemoveOrderLine(OrderLine orderLine)
}
}
}
-}
\ No newline at end of file
+}
diff --git a/src/NHibernate.DomainModel/Northwind/Mappings/Order.hbm.xml b/src/NHibernate.DomainModel/Northwind/Mappings/Order.hbm.xml
index efae7f61cb9..b0fa0c4949f 100755
--- a/src/NHibernate.DomainModel/Northwind/Mappings/Order.hbm.xml
+++ b/src/NHibernate.DomainModel/Northwind/Mappings/Order.hbm.xml
@@ -17,6 +17,9 @@
+
+
+
@@ -60,4 +63,4 @@
-
\ No newline at end of file
+
diff --git a/src/NHibernate.Test/Async/Linq/WhereTests.cs b/src/NHibernate.Test/Async/Linq/WhereTests.cs
index 3afa7cda451..b357edc1c82 100644
--- a/src/NHibernate.Test/Async/Linq/WhereTests.cs
+++ b/src/NHibernate.Test/Async/Linq/WhereTests.cs
@@ -848,6 +848,27 @@ public async Task ContainsOnPersistedCollectionAsync()
Assert.That(result.SerialNumber, Is.EqualTo("1121"));
}
+ [Test]
+ public async Task CanCompareAggregateResultAsync()
+ {
+ if (!Dialect.SupportsScalarSubSelects)
+ {
+ Assert.Ignore(Dialect.GetType().Name + " does not support scalar sub-queries");
+ }
+
+ await (session.Query()
+ .Select(o => new AggregateDate { Id = o.CustomerId, MaxDate = o.Orders.Max(l => l.RequiredOrderDate)})
+ .Where(o => o.MaxDate <= DateTime.Today && o.MaxDate >= DateTime.Today)
+ .ToListAsync());
+ }
+
+ private class AggregateDate
+ {
+ public string Id { get; set; }
+
+ public DateTime? MaxDate { get; set; }
+ }
+
private static List