BizTalk WCF-SQL 类型的存储过程响应架构

BizTalk WCF-SQL typed stored procedure response schema

为类型化存储过程生成响应模式,存储过程在返回最终结果集之前进行了一些数据库更新。 Visual Studio 生成的响应模式有很多垃圾。

有没有办法强制它生成更清晰的架构?

StoredProcedureResultset4 是唯一重要的。

这是我从 MSDN 得到的相同答案。不幸的是,标记的答案对您不起作用,因为没有办法,或者真的很难从调用的存储过程中捕获和抑制结果集。

原因与存储过程代码有关。

向导只会为 SQL 服务器的响应中返回的元素生成架构类型。意思是,存储过程正在为这些更新发出结果,因此您正在获取它们的元数据。

解决此问题的方法是修改 SP 代码,使其在任何不应发出的操作上不发出任何结果。基本上,如果您在 SQL Management Studio 的结果 window 中看到它,您将获得它的架构。

status 和 message 可能是另一个 SP 的结果,因此抑制它的一种方法是将结果分配给临时 table,从而将其重定向到输出流。

但是,如果 StoredProcedureResultset4 是最重要的,那么您只需要使用它。忽略所有其他结果并没有错,前提是它们总是以相同的顺序出现。

明确一点,您仍然需要编写抑制不需要的结果的包装器,只需从新的 SP 调用原始 SP 不会改变输出,您仍然会得到额外的结果集。

事实上,包装器会更难实现,因为您必须捕获并检查我认为不可能的所有结果集。

在 BizTalk 中执行此操作的更正确方法是去除不需要的内容的端口映射。