Join(TOuter, TInner, TKey, TResult) メソッド
指定された結合キーで、外部ストリームのイベントを内部ストリームのイベントと結合します。
名前空間: Microsoft.ComplexEventProcessing.Linq
アセンブリ: Microsoft.ComplexEventProcessing (Microsoft.ComplexEventProcessing.dll)
構文
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
)
型パラメーター
- TOuter
外部ストリーム イベントの型。
- TInner
内部ストリーム イベントの型。
- TKey
結合キーの型。
- TResult
結合結果の型。
パラメーター
- outer
型: Microsoft.ComplexEventProcessing.Linq. . :: . .CepStream< (Of < ( <'TOuter> ) > ) >
外部ストリーム。
- inner
型: Microsoft.ComplexEventProcessing.Linq. . :: . .CepStream< (Of < ( <'TInner> ) > ) >
内部ストリーム。
- outerKeySelector
型: System.Linq.Expressions. . :: . .Expression< (Of < ( <'Func< (Of < ( <'TOuter, TKey> ) > ) >> ) > ) >
外部ストリーム イベントからキー値を選択するセレクター。
- innerKeySelector
型: System.Linq.Expressions. . :: . .Expression< (Of < ( <'Func< (Of < ( <'TInner, TKey> ) > ) >> ) > ) >
内部ストリーム イベントからキー値を選択するセレクター。
- selector
型: System.Linq.Expressions. . :: . .Expression< (Of < ( <'Func< (Of < ( <'TOuter, TInner, TResult> ) > ) >> ) > ) >
出力の射影を定義するマッピング式。
戻り値
型: Microsoft.ComplexEventProcessing.Linq. . :: . .CepStream< (Of < ( <'TResult> ) > ) >
結合されたイベントのストリーム。
使用に関するメモ
Visual Basic および C# では、このメソッドを型 CepStream< (Of < ( <'TOuter> ) > ) > の任意のオブジェクトのインスタンス メソッドとして呼び出すことができます。このメソッドを呼び出すためにインスタンス メソッドの構文を使う場合は、最初のパラメーターを省略してください。詳細については、「https://msdn.microsoft.com/ja-jp/library/bb384936(v=sql.105)」または「https://msdn.microsoft.com/ja-jp/library/bb383977(v=sql.105)」を参照してください。
説明
詳細については、「結合」を参照してください。
使用例
次の例では、ストリーム stream1 のイベントをストリーム stream2 のイベントと比較します。on 句で定義された等価条件に一致する、ストリーム内のイベント (2 つのイベントの期間は重複しています) が結合され、新しいイベントに出力されます。このイベントには、イベント e1 のペイロード フィールド i および j と、イベント e2 のフィールド j が含まれています。
// 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 };