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/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 };