Share via


Join(TOuter, TInner, TKey, TResult)-Methode

Verknüpft die Ereignisse vom äußeren Datenstrom mit Ereignissen vom inneren Datenstrom anhand des vorhandenen Joinschlüssels.

Namespace:  Microsoft.ComplexEventProcessing.Linq
Assembly:  Microsoft.ComplexEventProcessing (in Microsoft.ComplexEventProcessing.dll)

Syntax

public static CepStream<TResult> Join<TOuter, TInner, TKey, TResult>(
    this CepStream<TOuter> outer,
    CepStream<TInner> inner,
    Expression<Func<TOuter, TKey>> outerKeySelector,
    Expression<Func<TInner, TKey>> innerKeySelector,
    Expression<Func<TOuter, TInner, TResult>> selector
)

Typparameter

  • TOuter
    Der Ereignistyp des äußeren Datenstroms.
  • TInner
    Der Ereignistyp des inneren Datenstroms.
  • TKey
    Der Typ des Joinschlüssels.
  • TResult
    Der Typ des Joinergebnisses.

Parameter

Rückgabewert

Typ: Microsoft.ComplexEventProcessing.Linq. . :: . .CepStream< (Of < ( <'TResult> ) > ) >
Ein Datenstrom von verknüpften Ereignissen.

Hinweis zur Verwendung

In Visual Basic und C# können Sie die Methode als Instanzenmethode für jedes Objekt vom Typ CepStream< (Of < ( <'TOuter> ) > ) > aufrufen. Wenn Sie Instanzmethodensyntax zum Aufruf dieser Methode verwenden, vernachlässigen Sie den ersten Parameter. Weitere Informationen finden Sie unter https://msdn.microsoft.com/de-de/library/bb384936(v=sql.105) oder https://msdn.microsoft.com/de-de/library/bb383977(v=sql.105).

Hinweise

Weitere Informationen finden Sie unter Joins.

Beispiele

Im folgenden Beispiel werden Ereignisse im Datenstrom stream1 mit Ereignissen im Datenstrom stream2 verglichen. Ereignisse im Datenstrom, die die Gleichheitskriterien erfüllen, die in der Klausel on definiert wurden (zusätzlich zu sich überschneidenden Zeitintervallen der beiden Ereignisse), werden verknüpft und als ein neues Ereignis ausgegeben, das die Nutzlastfelder i und j von Ereignis e1 und Feld j von Ereignis e2 enthält.

// Assuming the following input event type for both stream1 and stream2.
public class MyPayload
{
    public int i;
    public float j;
}

var equiJoin = from e1 in stream1
               join e2 in stream2
               on e1.i equals e2.i
               select new { e1.i, e1.j, e2.j };

Siehe auch

Verweis

CepStream Klasse

Microsoft.ComplexEventProcessing.Linq-Namespace