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
    联接结果类型。

参数

返回值

类型:Microsoft.ComplexEventProcessing.Linq. . :: . .CepStream< (Of < ( <'TResult> ) > ) >
联接事件的流。

用法说明

在 Visual Basic 和 C# 中,您可以对 CepStream< (Of < ( <'TOuter> ) > ) > 类型的任何对象将此方法作为实例方法调用。在您使用实例方法语法调用此方法时,将忽略第一个参数。有关详细信息,请参阅https://msdn.microsoft.com/zh-cn/library/bb384936(v=sql.105)https://msdn.microsoft.com/zh-cn/library/bb383977(v=sql.105)

注释

有关详细信息,请参阅联接

示例

下面的示例将流 stream1 中的事件与流 stream2 中的事件进行了比较。流中满足 on 子句中定义的相等条件(此外,还在两个事件的时间间隔中重叠)的事件将进行联接并输出到包含以下字段的新事件中:事件 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 };

请参阅

参考

CepStream 类

Microsoft.ComplexEventProcessing.Linq 命名空间