diff --git a/releasenotes.txt b/releasenotes.txt index bee48f451cc..292bd4b79b6 100644 --- a/releasenotes.txt +++ b/releasenotes.txt @@ -192,6 +192,14 @@ Release notes - NHibernate - Version 5.1.0 As part of releasing 5.1.0, a missing 5.0.0 possible breaking change has been added about inequality semantic in LINQ queries. See 5.0.0 possible breaking changes. +Build 5.0.5 +============================= + +Release notes - NHibernate - Version 5.0.5 + +** Bug + * #1665 Have IFutureEnumerable.GetEnumerable executing immediatly the query + Build 5.0.4 ============================= diff --git a/src/NHibernate.Test/Async/Futures/FutureQueryFixture.cs b/src/NHibernate.Test/Async/Futures/FutureQueryFixture.cs index 6a277639fdc..6c330907bab 100644 --- a/src/NHibernate.Test/Async/Futures/FutureQueryFixture.cs +++ b/src/NHibernate.Test/Async/Futures/FutureQueryFixture.cs @@ -152,5 +152,25 @@ public async Task CanExecuteMultipleQueryWithSameParameterNameAsync() } } } + + [Test] + public async Task FutureExecutedOnGetEnumerableAsync() + { + Sfi.Statistics.IsStatisticsEnabled = true; + try + { + using (var s = Sfi.OpenSession()) + { + var persons = s.CreateQuery("from Person").Future(); + Sfi.Statistics.Clear(); + await (persons.GetEnumerableAsync()); + Assert.That(Sfi.Statistics.PrepareStatementCount, Is.EqualTo(1)); + } + } + finally + { + Sfi.Statistics.IsStatisticsEnabled = false; + } + } } } diff --git a/src/NHibernate.Test/Futures/FutureQueryFixture.cs b/src/NHibernate.Test/Futures/FutureQueryFixture.cs index fe7d35751e6..ff1a5c5731e 100644 --- a/src/NHibernate.Test/Futures/FutureQueryFixture.cs +++ b/src/NHibernate.Test/Futures/FutureQueryFixture.cs @@ -141,5 +141,25 @@ public void CanExecuteMultipleQueryWithSameParameterName() } } } + + [Test] + public void FutureExecutedOnGetEnumerable() + { + Sfi.Statistics.IsStatisticsEnabled = true; + try + { + using (var s = Sfi.OpenSession()) + { + var persons = s.CreateQuery("from Person").Future(); + Sfi.Statistics.Clear(); + persons.GetEnumerable(); + Assert.That(Sfi.Statistics.PrepareStatementCount, Is.EqualTo(1)); + } + } + finally + { + Sfi.Statistics.IsStatisticsEnabled = false; + } + } } } diff --git a/src/NHibernate/Impl/DelayedEnumerator.cs b/src/NHibernate/Impl/DelayedEnumerator.cs index 158e78d7f75..5365a7db1f0 100644 --- a/src/NHibernate/Impl/DelayedEnumerator.cs +++ b/src/NHibernate/Impl/DelayedEnumerator.cs @@ -25,11 +25,7 @@ public DelayedEnumerator(GetResult result, GetResultAsync resultAsync) public IEnumerable GetEnumerable() { - var value = _result(); - foreach (T item in value) - { - yield return item; - } + return _result(); } // Remove in 6.0