Table of Contents

Namespace eQuantic.Core.Data.Repository.Read

Interfaces

IAggregateReadRepository<TEntity>

A read repository that computes MIN/MAX/AVG on the store (with a client-side fallback for computed selectors), completing the aggregate surface next to the contract's Count/Sum. Providers opt in.

IAsyncQueryableReadRepository<TEntity, TKey>

An asynchronous read repository backed by an IQueryable<T> data source.

IAsyncReadRepository<TEntity, TKey>

The asynchronous read repository. Query shaping (filtering, sorting, includes, tracking) is expressed through a single QueryOptions<TEntity> argument, and paged reads return a PagedResult<T>.

IContinuationReadRepository<TEntity>

A read repository that pages through its store's native continuation mechanism (Cassandra PagingState, Cosmos continuation tokens) instead of count-and-skip: every page costs the same, however deep, and the token is an opaque string a caller can hold across requests. Providers opt in.

IExplainableRepository<TEntity>

A read repository that can explain — without executing — what a shaped query will actually do: the native statement, what is pushed down versus evaluated client-side, and the cost flags. Providers opt in; use it in code review and diagnostics to make a query's cost visible before it ships.

IGroupedReadRepository<TEntity>

A read repository that groups on the store: the key and the aggregate projection render to a native GROUP BY, and only the grouped rows travel. The projection is typed LINQ restricted to the shapes a store can aggregate server-side — g.Key, g.Count(), g.Sum/Min/Max/Average(x => x.Member); anything else is rejected with the supported shapes. Providers opt in.

IQueryableReadRepository<TEntity, TKey>

A synchronous read repository backed by an IQueryable<T> data source.

IReadRepository<TEntity, TKey>

The synchronous read repository. It mirrors IAsyncReadRepository<TEntity, TKey> and shapes queries through a single QueryOptions<TEntity> argument.

IStreamingReadRepository<TEntity>

A read repository that streams results through the store's native cursor/paging path as an IAsyncEnumerable<T> — rows arrive as the store produces them, nothing is buffered beyond a page, and enumeration can stop (or be cancelled) at any point without fetching the rest. The natural shape for exports, ETL and any read too large to materialize. Providers opt in.