使用 WCF 通道模型开发 Oracle Database 应用程序

可以使用 Windows Communication Foundation (WCF) 通道模型,通过直接通过使用 Oracle DB 绑定创建的通道实例发送 XML 消息来使用适用于 Oracle 数据库的 Microsoft BizTalk 适配器。

使用 WCF 通道模型比使用 WCF 服务模型公开的强类型类和方法的一个优点是,通道模型可更精细地控制对 Oracle 数据库执行的操作。 为什么? 在 WCF 通道模型中,直接控制通过通道发送的消息的内容。

在某些情况下,这种额外的控制级别可能很有用。 例如,使用 WCF 通道模型对表执行更新操作时,可以通过省略传入消息的更新模板中的列来选择性地更新目标行中的列。 WCF 客户端公开的 update 方法对模板使用强类型记录参数,该参数包括表架构中的每个列。 如果 WSDL 中的列具有“nillable=false”,则必须使用 WCF 服务模型对其进行更新。

WCF 通道模型在 WCF 服务模型上提供的另一个关键优势是更全面地支持 Oracle 大型对象 (LOB) 数据类型的端到端流式处理。 通过使用 WCF 通道模型,可以执行端到端流式处理:

  • 使用 UpdateLOB 操作更新表或视图中的 LOB 列。

  • ON OUT 和 IN OUT 参数,其中包含由过程和函数返回的 LOB 数据。

  • 在 SQLEXECUTE 操作结果中包含的 LOB 数据上。

  • 在 POLLINGSTMT 操作中返回的 LOB 数据列上。

  • 对表或视图的 Select 操作返回的 LOB 数据列。

    这是因为在 WCF 通道模型中,可以直接控制如何在传出消息上提供消息正文,以及如何处理传入消息的消息正文。

    相比之下,WCF 服务模型仅提供:

  • 针对一个操作的 LOB 数据的端到端流式处理,即 ReadLOB 操作。

  • 无法以流式传输方式更新 Oracle 数据库上的 LOB 数据。

    本主题中的各节介绍如何使用 WCF 通道模型对 Oracle 数据库适配器执行操作。

本节内容