Class ProjectionFieldExtractor

Assembly: redb.Core.dll

Extracts structure_ids from Select expression to optimize _values loading.
⭐ SUPPORTS: simple fields, Class fields, arrays, nested arrays (graph of any depth)

public class ProjectionFieldExtractor

Inheritance

ObjectProjectionFieldExtractor

Methods

ExtractAggregations<TProps, TResult>(Expression<Func<RedbObject<TProps>, TResult>>)

Extracts information about requested aggregations

public List<AggregationInfo> ExtractAggregations<TProps, TResult>(Expression<Func<RedbObject<TProps>, TResult>> selector) where TProps : class, new()

ExtractFieldPathStrings<TProps, TResult>(Expression<Func<RedbObject<TProps>, TResult>>)

Extracts text field paths for SQL function search_objects_with_projection_by_paths.

public List<string>? ExtractFieldPathStrings<TProps, TResult>(Expression<Func<RedbObject<TProps>, TResult>> selector) where TProps : class, new()

ExtractStructureIds<TProps, TResult>(IRedbScheme, Expression<Func<RedbObject<TProps>, TResult>>)

Extracts HashSet of structure_ids for optimized BULK SELECT.

public HashSet<long>? ExtractStructureIds<TProps, TResult>(IRedbScheme scheme, Expression<Func<RedbObject<TProps>, TResult>> selector) where TProps : class, new()

HasAggregations<TProps, TResult>(Expression<Func<RedbObject<TProps>, TResult>>)

Checks if expression contains aggregation calls (Agg.Sum, etc.)

public bool HasAggregations<TProps, TResult>(Expression<Func<RedbObject<TProps>, TResult>> selector) where TProps : class, new()