diff --git a/src/shared/Z.EF.Plus.QueryFuture.Shared/QueryFutureEnumerable.cs b/src/shared/Z.EF.Plus.QueryFuture.Shared/QueryFutureEnumerable.cs index e1cba051..497c73b3 100644 --- a/src/shared/Z.EF.Plus.QueryFuture.Shared/QueryFutureEnumerable.cs +++ b/src/shared/Z.EF.Plus.QueryFuture.Shared/QueryFutureEnumerable.cs @@ -121,6 +121,25 @@ public async Task ToArrayAsync() return list.ToArray(); } } + + public async Task FirstOrDefaultAsync() + { + if (!HasValue) + { + await OwnerBatch.ExecuteQueriesAsync().ConfigureAwait(false); + } + + if (_result == null) + { + return default(T); + } + + using (var enumerator = _result.GetEnumerator()) + { + enumerator.MoveNext(); + return enumerator.Current; + } + } #endif /// Sets the result of the query deferred.