1using System.Linq.Expressions;
10public interface IQuerySource
14 internal static Exception Fail(Expression? expr) =>
15 Fail($
"Unsupported {expr?.NodeType} expression: {expr}");
17 internal static Exception Fail(
string op,
string msg) =>
18 Fail($
"Unsupported method call `{op}`: {msg}");
20 internal static Exception Fail(
string msg) =>
new NotSupportedException(msg);
121 public bool All(Expression<Func<T, bool>> predicate);
127 public Task<bool>
AllAsync(Expression<Func<T, bool>> predicate, CancellationToken cancel =
default);
138 public Task<bool>
AnyAsync(CancellationToken cancel =
default);
144 public bool Any(Expression<Func<T, bool>> predicate);
151 public Task<bool>
AnyAsync(Expression<Func<T, bool>> predicate, CancellationToken cancel =
default);
162 public Task<int>
CountAsync(CancellationToken cancel =
default);
168 public int Count(Expression<Func<T, bool>> predicate);
173 public Task<int>
CountAsync(Expression<Func<T, bool>> predicate, CancellationToken cancel =
default);
184 public Task<T>
FirstAsync(CancellationToken cancel =
default);
190 public T
First(Expression<Func<T, bool>> predicate);
196 public Task<T>
FirstAsync(Expression<Func<T, bool>> predicate, CancellationToken cancel =
default);
222 public Task<T?>
FirstOrDefaultAsync(Expression<Func<T, bool>> predicate, CancellationToken cancel =
default);
234 public Task<T>
LastAsync(CancellationToken cancel =
default);
241 public T
Last(Expression<Func<T, bool>> predicate);
247 public Task<T>
LastAsync(Expression<Func<T, bool>> predicate, CancellationToken cancel =
default);
273 public Task<T?>
LastOrDefaultAsync(Expression<Func<T, bool>> predicate, CancellationToken cancel =
default);
290 public long LongCount(Expression<Func<T, bool>> predicate);
295 public Task<long>
LongCountAsync(Expression<Func<T, bool>> predicate, CancellationToken cancel =
default);
311 public Task<T>
MaxAsync(CancellationToken cancel =
default);
319 public R
Max<R>(Expression<Func<T, R>> selector);
327 public Task<R>
MaxAsync<R>(Expression<Func<T, R>> selector, CancellationToken cancel =
default);
345 public Task<T>
MinAsync(CancellationToken cancel =
default);
357 public R
Min<R>(Expression<Func<T, R>> selector);
365 public Task<R>
MinAsync<R>(Expression<Func<T, R>> selector, CancellationToken cancel =
default);
385 public T
Single(Expression<Func<T, bool>> predicate);
391 public Task<T>
SingleAsync(Expression<Func<T, bool>> predicate, CancellationToken cancel =
default);
424 public int Sum(Expression<Func<T, int>> selector);
430 public Task<int>
SumAsync(Expression<Func<T, int>> selector, CancellationToken cancel =
default);
437 public long Sum(Expression<Func<T, long>> selector);
443 public Task<long>
SumAsync(Expression<Func<T, long>> selector, CancellationToken cancel =
default);
453 public double Sum(Expression<Func<T, double>> selector);
459 public Task<double>
SumAsync(Expression<Func<T, double>> selector, CancellationToken cancel =
default);
466 public double Average(Expression<Func<T, double>> selector);
472 public Task<double>
AverageAsync(Expression<Func<T, double>> selector, CancellationToken cancel =
default);
485 public Task<List<T>>
ToListAsync(CancellationToken cancel =
default);
515 public HashSet<T>
ToHashSet(IEqualityComparer<T>? comparer);
523 public Task<HashSet<T>>
ToHashSetAsync(IEqualityComparer<T>? comparer, CancellationToken cancel =
default);
533 public Dictionary<K, V>
ToDictionary<K, V>(Func<T, K> getKey, Func<T, V> getValue) where K : notnull;
543 public Task<Dictionary<K, V>>
ToDictionaryAsync<K, V>(Func<T, K> getKey, Func<T, V> getValue, CancellationToken cancel =
default) where K : notnull;
554 public Dictionary<K, V>
ToDictionary<K, V>(Func<T, K> getKey, Func<T, V> getValue, IEqualityComparer<K>? comparer) where K : notnull;
565 public Task<Dictionary<K, V>>
ToDictionaryAsync<K, V>(Func<T, K> getKey, Func<T, V> getValue, IEqualityComparer<K>? comparer, CancellationToken cancel =
default) where K : notnull;
Represents the options for customizing Fauna queries.
An interface for common static IQuerySource methods that are non-generic.
bool All(Expression< Func< T, bool > > predicate)
Applies each predicate and executes the query. This is evaluated server-side.
int Sum(Expression< Func< T, int > > selector)
Calculates the sum of values returned by a provided selector. This is evaluated server-side.
Task< T > LastAsync(CancellationToken cancel=default)
Executes the query asynchronously and obtains the last element in the result. This is evaluated serve...
T Min()
Executes a query and returns the minimum value in the result set. This is evaluated server-side....
Task< long > LongCountAsync(Expression< Func< T, bool > > predicate, CancellationToken cancel=default)
Applies the predicate, applies a count, and executes the query asynchronously. This is evaluated serv...
long LongCount(Expression< Func< T, bool > > predicate)
Applies the predicate, applies a count, and executes the query. This is evaluated server-side.
Task< T[]> ToArrayAsync(CancellationToken cancel=default)
Executes the query asynchronously and converts the results to a T:T[].
Task< T?> FirstOrDefaultAsync(CancellationToken cancel=default)
Executes the query asynchronously and obtains the first element in the result or the default value,...
IAsyncEnumerable< Page< T > > PaginateAsync(QueryOptions? queryOptions=null, CancellationToken cancel=default)
Executes a paginating query asynchronously and returns an enumerable of pages.
IQuerySource< T > Where(Expression< Func< T, bool > > predicate)
Applies the predicate to the query. This is evaluated server-side.
R Max< R >(Expression< Func< T, R > > selector)
Applies a selector, executes a query, and returns the maximum value in the result set....
Task< T > LastAsync(Expression< Func< T, bool > > predicate, CancellationToken cancel=default)
Applies the predicate, executes the query asynchronously, and obtains the last element in the result....
double Average(Expression< Func< T, double > > selector)
Calculates the mean average of values returned by a provided selector. This is evaluated server-side.
HashSet< T > ToHashSet(IEqualityComparer< T >? comparer)
Executes the query and converts the results to a HashSet<T>.
bool Any()
Determines if the result is not empty. This is evaluated server-side.
T? LastOrDefault()
Executes the query and obtains the last element in the result or the default value,...
IQuerySource< T > Distinct()
Obtains a distinct set of results. This is evaluated server-side.
Task< T > FirstAsync(CancellationToken cancel=default)
Executes the query asynchronously and obtains the first element in the result. This is evaluated serv...
IAsyncEnumerable< T > ToAsyncEnumerable(CancellationToken cancel=default)
Executes a query asynchronously.
IQuerySource< T > OrderByDescending< K >(Expression< Func< T, K > > keySelector)
Orders by descending according to the selector. This is evaluated server-side.
long Sum(Expression< Func< T, long > > selector)
Calculates the sum of values returned by a provided selector. This is evaluated server-side.
T? FirstOrDefault(Expression< Func< T, bool > > predicate)
Applies the predicate, executes the query, and obtains the first element in the result or the default...
Task< bool > AnyAsync(Expression< Func< T, bool > > predicate, CancellationToken cancel=default)
Applies each predicate and executes the query asynchronously. This is evaluated server-side.
Task< int > CountAsync(Expression< Func< T, bool > > predicate, CancellationToken cancel=default)
Applies the predicate, applies a count, and executes the query asynchronously. This is evaluated serv...
int Count(Expression< Func< T, bool > > predicate)
Applies the predicate, applies a count, and executes the query. This is evaluated server-side.
T[] ToArray()
Executes the query and converts the results to a T:T[].
Task< T > FirstAsync(Expression< Func< T, bool > > predicate, CancellationToken cancel=default)
Applies the predicate, executes the query asynchronously, and obtains the first element in the result...
IQuerySource< T > Take(int count)
Takes the first N elements of the results. This is evaluated server-side.
T Last(Expression< Func< T, bool > > predicate)
Applies the predicate, executes the query, and obtains the last element in the result....
int Count()
Applies a count of the elements and executes the query. This is evaluated server-side.
Task< T > SingleAsync(Expression< Func< T, bool > > predicate, CancellationToken cancel=default)
Applies the predicate and executes the query asynchronously. If the result is a single element,...
long LongCount()
Applies a count of the elements and executes the query. This is evaluated server-side.
Task< R > MinAsync< R >(Expression< Func< T, R > > selector, CancellationToken cancel=default)
Applies the selector, executes the query asynchronously, and returns the minimum value in the result ...
IQuerySource< T > Reverse()
Reverses the order of the results. This is evaluated server-side.
T Single(Expression< Func< T, bool > > predicate)
Applies the predicate and executes the query. If the result is a single element, returns it....
Dictionary< K, V > ToDictionary< K, V >(Func< T, K > getKey, Func< T, V > getValue)
Executes the query synchronously and converts the results to a Dictionary<K,V>.
Task< R > MaxAsync< R >(Expression< Func< T, R > > selector, CancellationToken cancel=default)
Applies a selector, executes a query asynchronously, and returns the maximum value in the result set....
Task< double > AverageAsync(Expression< Func< T, double > > selector, CancellationToken cancel=default)
Asynchronously calculates the mean average of values returned by a provided selector....
Task< int > SumAsync(Expression< Func< T, int > > selector, CancellationToken cancel=default)
Asynchronously calculates the sum of values returned by a provided selector. This is evaluated server...
T First(Expression< Func< T, bool > > predicate)
Applies the predicate, executes the query, and obtains the first element in the result....
T Max()
Executes a query and returns the maximum value in the result set. This is evaluated server-side....
Task< T > MaxAsync(CancellationToken cancel=default)
Executes a query asynchronously and returns the maximum value in the result set. This is evaluated se...
IQuerySource< T > Skip(int count)
Skips the first N elements of the results. This is evaluated server-side.
Task< Dictionary< K, V > > ToDictionaryAsync< K, V >(Func< T, K > getKey, Func< T, V > getValue, CancellationToken cancel=default)
Executes the query asynchronously and converts the results to a Dictionary<K,V>.
Task< T > SingleOrDefaultAsync(CancellationToken cancel=default)
Executes the query asynchronously. If the result is a single element, returns it. Otherwise,...
Task< HashSet< T > > ToHashSetAsync(CancellationToken cancel=default)
Executes the query asynchronously and converts the results to a HashSet<T>.
Task< T?> LastOrDefaultAsync(CancellationToken cancel=default)
Executes the query asynchronously and obtains the last element in the result or the default value,...
Task< long > SumAsync(Expression< Func< T, long > > selector, CancellationToken cancel=default)
Asynchronously calculates the sum of values returned by a provided selector. This is evaluated server...
IQuerySource< R > Select< R >(Expression< Func< T, R > > selector)
Applies a projection to the query. This is evaluated server-side.
HashSet< T > ToHashSet()
Executes the query and converts the results to a HashSet<T>.
IQuerySource< T > OrderDescending()
Orders by descending. This is evaluated server-side.
Task< List< T > > ToListAsync(CancellationToken cancel=default)
Executes the query asynchronously and converts the results to a List<T>.
Task< bool > AllAsync(Expression< Func< T, bool > > predicate, CancellationToken cancel=default)
Applies each predicate and executes the query asynchronously. This is evaluated server-side.
double Sum(Expression< Func< T, double > > selector)
Calculates the sum of values returned by a provided selector. This is evaluated server-side.
IQuerySource< T > OrderBy< K >(Expression< Func< T, K > > keySelector)
Orders according to the selector. This is evaluated server-side.
Task< T > SingleAsync(CancellationToken cancel=default)
Executes the query asynchronously. If the result is a single element, returns it. Otherwise,...
Task< long > LongCountAsync(CancellationToken cancel=default)
Applies a count of the elements and executes the query asynchronously. This is evaluated server-side.
Task< T > MinAsync(CancellationToken cancel=default)
Executes a query asynchronously and returns the minimum value in the result set. This is evaluated se...
Task< T?> FirstOrDefaultAsync(Expression< Func< T, bool > > predicate, CancellationToken cancel=default)
Applies the predicate, executes the query asynchronously, and obtains the first element in the result...
R Min< R >(Expression< Func< T, R > > selector)
Applies the selector, executes the query, and returns the minimum value in the result set....
T First()
Executes the query and obtains the first element in the result. This is evaluated server-side.
Task< T > SingleOrDefaultAsync(Expression< Func< T, bool > > predicate, CancellationToken cancel=default)
Applies the predicate and executes the query asynchronously. If the result is a single element,...
List< T > ToList()
Executes the query and converts the results to a List<T>.
T SingleOrDefault(Expression< Func< T, bool > > predicate)
Applies the predicate and executes the query. If the result is a single element, returns it....
IQuerySource< T > Order()
Applies default ordering to the query. This is evaluated server-side.
T Last()
Executes the query and obtains the last element in the result. This is evaluated server-side.
T SingleOrDefault()
Executes the query. If the result is a single element, returns it. Otherwise, returns the default....
IEnumerable< T > ToEnumerable()
Executes a query.
Task< int > CountAsync(CancellationToken cancel=default)
Applies a count of the elements and executes the query asynchronously. This is evaluated server-side.
bool Any(Expression< Func< T, bool > > predicate)
Applies each predicate and executes the query. This is evaluated server-side.
T Single()
Executes the query. If the result is a single element, returns it. Otherwise, throws an exception....
T? LastOrDefault(Expression< Func< T, bool > > predicate)
Applies the predicate, executes the query and obtains the last element in the result or the default v...
Task< HashSet< T > > ToHashSetAsync(IEqualityComparer< T >? comparer, CancellationToken cancel=default)
Executes the query asynchronously and converts the results to a HashSet<T>.
T? FirstOrDefault()
Executes the query and obtains the first element in the result or the default value,...
Task< T?> LastOrDefaultAsync(Expression< Func< T, bool > > predicate, CancellationToken cancel=default)
Applies the predicate, executes the query asynchronously and obtains the last element in the result o...
Task< double > SumAsync(Expression< Func< T, double > > selector, CancellationToken cancel=default)
Asynchronously calculates the sum of values returned by a provided selector. This is evaluated server...
Task< bool > AnyAsync(CancellationToken cancel=default)
Determines if the result is not empty asynchronously. This is evaluated server-side.