Метод 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/ru-ru/library/bb384936(v=sql.105) или https://msdn.microsoft.com/ru-ru/library/bb383977(v=sql.105).
Замечания
Дополнительные сведения см. в разделе Соединения.
Примеры
В следующем примере события в потоке stream1 сравниваются с событиями в потоке stream2. События в потоке, которые соответствуют критериям равенства, определенным в предложении on (в дополнение к требованию перекрытия интервалов времени для двух событий), соединяются и выводятся в новое событие, которое содержит поля полезных данных i и j из события e1 и поле j из события e2.
// 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 };