/// <summary>Construct a query with a set of initial settings</summary> internal FdbRangeQuery([NotNull] IFdbReadOnlyTransaction transaction, KeySelector begin, KeySelector end, [NotNull] Func <KeyValuePair <Slice, Slice>, T> transform, bool snapshot, [CanBeNull] FdbRangeOptions options) { Contract.Requires(transaction != null && transform != null); this.Transaction = transaction; this.Begin = begin; this.End = end; this.Transform = transform; this.Snapshot = snapshot; this.Options = options ?? new FdbRangeOptions(); this.OriginalRange = KeySelectorPair.Create(begin, end); }
public static IAsyncEnumerable <TResult> Except <TKey, TResult>([NotNull] this IFdbReadOnlyTransaction trans, [NotNull] IEnumerable <KeyRange> ranges, [NotNull] Func <KeyValuePair <Slice, Slice>, TKey> keySelector, [NotNull] Func <KeyValuePair <Slice, Slice>, TResult> resultSelector, IComparer <TKey> keyComparer = null) { Contract.NotNull(ranges, nameof(ranges)); return(Except <TKey, TResult>(trans, ranges.Select(r => KeySelectorPair.Create(r)), keySelector, resultSelector, keyComparer)); }