/// <summary>
 /// Calculates count of elements of provided <paramref name="provider"/>.
 /// </summary>
 /// <param name="provider">The provider.</param>
 /// <param name="session">The session.</param>
 public static long Count(this CompilableProvider provider, Session session)
 {
     return(provider
            .Aggregate(null, new AggregateColumnDescriptor("$Count", 0, AggregateType.Count))
            .GetRecordSet(session)
            .First()
            .GetValue <long>(0));
 }
Exemple #2
0
 /// <summary>
 /// Calculates count of elements of provided <paramref name="provider"/>.
 /// </summary>
 /// <param name="provider">The provider.</param>
 /// <param name="session">The session.</param>
 public static long Count(this CompilableProvider provider, Session session)
 {
     ArgumentValidator.EnsureArgumentNotNull(provider, nameof(provider));
     ArgumentValidator.EnsureArgumentNotNull(session, nameof(session));
     using var recordSetReader = provider
                                 .Aggregate(null, new AggregateColumnDescriptor("$Count", 0, AggregateType.Count))
                                 .GetRecordSetReader(session, new ParameterContext());
     return(recordSetReader.MoveNext() && recordSetReader.Current != null
 ? recordSetReader.Current.GetValue <long>(0)
 : throw new InvalidOperationException("Sequence contains no elements."));
 }