CrossJoin

Class CrossJoin

The CrossJoin allows you to combine every record from one input with every record from the other input. The input for the first table will be loaded into memory before join starts. Then every incoming row will be joined with every row of the InMemory-Table using the CrossJoinFunc function. The InMemory target should always be the target of the smaller amount of data to reduce memory consumption and processing time.

Inherited Members
Namespace: ETLBox.DataFlow
Assembly: ETLBox.dll
Syntax
    public class CrossJoin : CrossJoin<ExpandoObject, ExpandoObject, ExpandoObject>, IDataFlowSource<ExpandoObject>, IDataFlowSource, IDataFlowDestination, IDataFlowComponent, ILoggableTask
Examples
  CrossJoin<InputType1, InputType2, OutputType> crossJoin = new CrossJoin<InputType1, InputType2, OutputType>();
                                                                                                                                                                                                                                            crossJoin.CrossJoinFunc = (inmemoryRow, passingRow) => {
                                                                                                                                                                                                                                                return new OutputType() {
                                                                                                                                                                                                                                                    Result = leftRow.Value1 + rightRow.Value2
                                                                                                                                                                                                                                                };
                                                                                                                                                                                                                                            });
                                                                                                                                                                                                                                            source1.LinkTo(join.InMemoryTarget);
                                                                                                                                                                                                                                            source2.LinkTo(join.PassingTarget);
                                                                                                                                                                                                                                            join.LinkTo(dest);

Constructors

CrossJoin()

Declaration
    public CrossJoin()

CrossJoin(Func<ExpandoObject, ExpandoObject, ExpandoObject>)

Declaration
    public CrossJoin(Func<ExpandoObject, ExpandoObject, ExpandoObject> crossJoinFunc)
Parameters
TypeNameDescription
Func<ExpandoObject, ExpandoObject, ExpandoObject>crossJoinFunc

Implements