Class MethodBoundary
Uses a static method to decide whether the current row stays in the group. The method receives the stored key followed by values from the current row. It returns whether the group stays open and the key to store for the next row.
public sealed class MethodBoundary : GroupingBoundary
- Inheritance
-
MethodBoundary
- Inherited Members
- Extension Methods
Constructors
MethodBoundary(MethodInfo, Type, IBoundaryField, IReadOnlyList<IBoundaryReader>)
Uses a static method to decide whether the current row stays in the group. The method receives the stored key followed by values from the current row. It returns whether the group stays open and the key to store for the next row.
public MethodBoundary(MethodInfo method, Type keyType, IBoundaryField key, IReadOnlyList<IBoundaryReader> parameters)
Parameters
methodMethodInfokeyTypeTypekeyIBoundaryFieldparametersIReadOnlyList<IBoundaryReader>
Properties
CanChange
Whether a later row can ever start a new group. false folds every row into one instance.
public override bool CanChange { get; }
Property Value
Captures
Whether the boundary stores state captured on the group's first row.
public override bool Captures { get; }
Property Value
PresenceColumn
The column whose DBNull marks the group absent for a left-joined sub level, or null when none.
public override int? PresenceColumn { get; }
Property Value
- int?
Targets
Gets the bound values used by this boundary.
public override IEnumerable<(FieldInfo, object[])> Targets { get; }
Property Value
- IEnumerable<(FieldInfo Field, object[] Targets)>
Methods
EmitCapture(Generator)
Writes the instructions that capture a key from the first row.
public override void EmitCapture(Generator g)
Parameters
EmitCompare(Generator, Label)
Writes the instructions that branch to changed when a new group starts.
public override void EmitCompare(Generator g, Label changed)