Interface IRedbQueryProvider

Namespace: redb.Core.Query
Assembly: redb.Core.dll

Provider for executing LINQ queries.

public interface IRedbQueryProvider

Methods

CreateQuery<TProps>(long, long?, bool)

Create new query for specified scheme.

IRedbQueryable<TProps> CreateQuery<TProps>(long schemeId, long? userId = null, bool checkPermissions = false) where TProps : class, new()

ExecuteAggregateAsync(long, string, AggregateFunction, FilterExpression?)

Execute single-field aggregation with FilterExpression (Pro version).

Task<decimal?> ExecuteAggregateAsync(long schemeId, string fieldPath, AggregateFunction function, FilterExpression? filter)

ExecuteAggregateAsync(long, string, AggregateFunction, string?)

Execute aggregation on EAV field (SQL strategy for simple fields).

Task<decimal?> ExecuteAggregateAsync(long schemeId, string fieldPath, AggregateFunction function, string? filterJson = null)

ExecuteAggregateBatchAsync(long, IEnumerable<AggregateRequest>, FilterExpression?)

Execute batch aggregation with FilterExpression (Pro version).

Task<AggregateResult> ExecuteAggregateBatchAsync(long schemeId, IEnumerable<AggregateRequest> requests, FilterExpression? filter)

ExecuteAggregateBatchAsync(long, IEnumerable<AggregateRequest>, string?)

Execute batch aggregation (multiple fields in one query).

Task<AggregateResult> ExecuteAggregateBatchAsync(long schemeId, IEnumerable<AggregateRequest> requests, string? filterJson = null)

ExecuteArrayGroupedAggregateAsync(long, string, IEnumerable<GroupFieldRequest>, IEnumerable<AggregateRequest>, string?)

Execute GroupBy aggregation on array (SQL function aggregate_array_grouped).

Task<JsonDocument?> ExecuteArrayGroupedAggregateAsync(long schemeId, string arrayPath, IEnumerable<GroupFieldRequest> groupFields, IEnumerable<AggregateRequest> aggregations, string? filterJson = null)

ExecuteAsync(Expression, Type)

Execute query asynchronously.

Task<object> ExecuteAsync(Expression expression, Type elementType)

ExecuteDeleteAsync(long, FilterExpression?)

Delete objects by filter (Pro version with FilterExpression for PVT-based deletion).

Task<int> ExecuteDeleteAsync(long schemeId, FilterExpression? filter)

ExecuteDeleteAsync(long, string?)

Delete objects by filter (OpenSource version with JSON filter).

Task<int> ExecuteDeleteAsync(long schemeId, string? filterJson = null)

ExecuteGroupedAggregateAsync(long, IEnumerable<GroupFieldRequest>, IEnumerable<AggregateRequest>, FilterExpression?)

Execute GroupBy aggregation with FilterExpression (Pro version).

Task<JsonDocument?> ExecuteGroupedAggregateAsync(long schemeId, IEnumerable<GroupFieldRequest> groupFields, IEnumerable<AggregateRequest> aggregations, FilterExpression? filter)

ExecuteGroupedAggregateAsync(long, IEnumerable<GroupFieldRequest>, IEnumerable<AggregateRequest>, string?)

Execute GroupBy aggregation (SQL function aggregate_grouped).

Task<JsonDocument?> ExecuteGroupedAggregateAsync(long schemeId, IEnumerable<GroupFieldRequest> groupFields, IEnumerable<AggregateRequest> aggregations, string? filterJson = null)

ExecuteGroupedWindowQueryAsync(long, IEnumerable<GroupFieldRequest>, IEnumerable<AggregateRequest>, IEnumerable<WindowFuncRequest>, IEnumerable<WindowFieldRequest>, IEnumerable<WindowOrderRequest>, FilterExpression?)

Execute GroupBy with Window Functions with FilterExpression (Pro version).

Task<JsonDocument?> ExecuteGroupedWindowQueryAsync(long schemeId, IEnumerable<GroupFieldRequest> groupFields, IEnumerable<AggregateRequest> aggregations, IEnumerable<WindowFuncRequest> windowFuncs, IEnumerable<WindowFieldRequest> partitionBy, IEnumerable<WindowOrderRequest> orderBy, FilterExpression? filter)

ExecuteGroupedWindowQueryAsync(long, IEnumerable<GroupFieldRequest>, IEnumerable<AggregateRequest>, IEnumerable<WindowFuncRequest>, IEnumerable<WindowFieldRequest>, IEnumerable<WindowOrderRequest>, string?)

Execute GroupBy with Window Functions (ranking, running totals on aggregated data).

Task<JsonDocument?> ExecuteGroupedWindowQueryAsync(long schemeId, IEnumerable<GroupFieldRequest> groupFields, IEnumerable<AggregateRequest> aggregations, IEnumerable<WindowFuncRequest> windowFuncs, IEnumerable<WindowFieldRequest> partitionBy, IEnumerable<WindowOrderRequest> orderBy, string? filterJson = null)

ExecuteWindowQueryAsync(long, IEnumerable<WindowFieldRequest>, IEnumerable<WindowFuncRequest>, IEnumerable<WindowFieldRequest>, IEnumerable<WindowOrderRequest>, FilterExpression?, string?, int?, int?)

Execute query with window functions with FilterExpression (Pro version).

Task<JsonDocument?> ExecuteWindowQueryAsync(long schemeId, IEnumerable<WindowFieldRequest> selectFields, IEnumerable<WindowFuncRequest> windowFuncs, IEnumerable<WindowFieldRequest> partitionBy, IEnumerable<WindowOrderRequest> orderBy, FilterExpression? filter, string? frameJson = null, int? take = null, int? skip = null)

ExecuteWindowQueryAsync(long, IEnumerable<WindowFieldRequest>, IEnumerable<WindowFuncRequest>, IEnumerable<WindowFieldRequest>, IEnumerable<WindowOrderRequest>, string?, string?, int?, int?)

Execute query with window functions (SQL function query_with_window).

Task<JsonDocument?> ExecuteWindowQueryAsync(long schemeId, IEnumerable<WindowFieldRequest> selectFields, IEnumerable<WindowFuncRequest> windowFuncs, IEnumerable<WindowFieldRequest> partitionBy, IEnumerable<WindowOrderRequest> orderBy, string? filterJson = null, string? frameJson = null, int? take = null, int? skip = null)

GetFilterJsonAsync<TProps>(QueryContext<TProps>)

Returns the JSON filter that will be sent to SQL function (for diagnostics)

Task<string> GetFilterJsonAsync<TProps>(QueryContext<TProps> context) where TProps : class, new()

GetGroupedWindowSqlPreviewAsync(long, IEnumerable<GroupFieldRequest>, IEnumerable<AggregateRequest>, IEnumerable<WindowFuncRequest>, IEnumerable<WindowFieldRequest>, IEnumerable<WindowOrderRequest>, FilterExpression?)

Get SQL preview for GroupBy + Window query with FilterExpression (Pro version).

Task<string> GetGroupedWindowSqlPreviewAsync(long schemeId, IEnumerable<GroupFieldRequest> groupFields, IEnumerable<AggregateRequest> aggregations, IEnumerable<WindowFuncRequest> windowFuncs, IEnumerable<WindowFieldRequest> partitionBy, IEnumerable<WindowOrderRequest> orderBy, FilterExpression? filter)

GetGroupedWindowSqlPreviewAsync(long, IEnumerable<GroupFieldRequest>, IEnumerable<AggregateRequest>, IEnumerable<WindowFuncRequest>, IEnumerable<WindowFieldRequest>, IEnumerable<WindowOrderRequest>, string?)

Get SQL preview for GroupBy + Window query.

Task<string> GetGroupedWindowSqlPreviewAsync(long schemeId, IEnumerable<GroupFieldRequest> groupFields, IEnumerable<AggregateRequest> aggregations, IEnumerable<WindowFuncRequest> windowFuncs, IEnumerable<WindowFieldRequest> partitionBy, IEnumerable<WindowOrderRequest> orderBy, string? filterJson = null)

GetSchemeAsync(long)

Get scheme by ID (for projections).

Task<IRedbScheme?> GetSchemeAsync(long schemeId)

GetSqlPreviewAsync<TProps>(QueryContext<TProps>)

Get SQL query for debugging (analogous to ToQueryString in EF Core).

Task<string> GetSqlPreviewAsync<TProps>(QueryContext<TProps> context) where TProps : class, new()

GetWindowSqlPreviewAsync(long, IEnumerable<WindowFieldRequest>, IEnumerable<WindowFuncRequest>, IEnumerable<WindowFieldRequest>, IEnumerable<WindowOrderRequest>, string?, string?, int?, int?)

Get SQL preview for window query (for debugging).

Task<string> GetWindowSqlPreviewAsync(long schemeId, IEnumerable<WindowFieldRequest> selectFields, IEnumerable<WindowFuncRequest> windowFuncs, IEnumerable<WindowFieldRequest> partitionBy, IEnumerable<WindowOrderRequest> orderBy, string? filterJson = null, string? frameJson = null, int? take = null, int? skip = null)