SelectMany(TInput, TBind, TResult)-Methode (CepStream(TInput), Expression(Func(CepStream(TInput), CepStream(TBind))), Expression(Func(TInput, TBind, TResult)))
Erzeugt auf der Grundlage des Kreuzjoins von zwei Eingabedatenströmen einen Datenstrom.
Namespace: Microsoft.ComplexEventProcessing.Linq
Assembly: Microsoft.ComplexEventProcessing (in Microsoft.ComplexEventProcessing.dll)
Syntax
public static CepStream<TResult> SelectMany<TInput, TBind, TResult>(
this CepStream<TInput> source,
Expression<Func<CepStream<TInput>, CepStream<TBind>>> bind,
Expression<Func<TInput, TBind, TResult>> selector
)
Typparameter
- TInput
Der Nutzlasttyp der Ereignisse aus dem äußeren Eingabedatenstrom.
- TBind
Der Nutzlasttyp der Ereignisse aus dem inneren Eingabedatenstrom.
- TResult
Der Nutzlasttyp der Ergebnisereignisse.
Parameter
- source
Typ: Microsoft.ComplexEventProcessing.Linq. . :: . .CepStream< (Of < ( <'TInput> ) > ) >
Äußerer Eingabedatenstrom.
- bind
Typ: System.Linq.Expressions. . :: . .Expression< (Of < ( <'Func< (Of < ( <'CepStream< (Of < ( <'TInput> ) > ) >, CepStream< (Of < ( <'TBind> ) > ) >> ) > ) >> ) > ) >
Innerer Eingabedatenstrom.
- selector
Typ: System.Linq.Expressions. . :: . .Expression< (Of < ( <'Func< (Of < ( <'TInput, TBind, TResult> ) > ) >> ) > ) >
Der Zuordnungsausdruck, der eine Projektion auf die Ausgabe definiert.
Rückgabewert
Typ: Microsoft.ComplexEventProcessing.Linq. . :: . .CepStream< (Of < ( <'TResult> ) > ) >
Ein Datenstrom, wobei das Ergebnis ein Kreuzjoin des äußeren und inneren Datenstroms ist.
Hinweis zur Verwendung
In Visual Basic und C# können Sie die Methode als Instanzenmethode für jedes Objekt vom Typ CepStream< (Of < ( <'TInput> ) > ) > 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
Ereignisse des inneren und äußeren Datenstroms werden auch bei Anwendung eines Kreuzjoins nur dann verglichen und als Joinergebnis ausgegeben, wenn deren Lebensdauer überlappt. Weitere Informationen finden Sie unter Joins.
Beispiele
Im folgenden Beispiel werden Ereignisse in stream1, die über einen Wert im Nutzlastfeld i verfügen, der größer als 3 ist, mit Ereignissen von stream2 mit einem Wert im Nutzlastfeld j, der kleiner als 10 ist, verknüpft.
var crossJoin = from e1 in stream1
from e2 in stream2
where e1.i > 3 && e2.j < 10
select new { e1.i, e2.j };