在wcf中循环调用存储过程

时间:2016-07-16 15:17:46

标签: c# ajax wcf stored-procedures ado.net

我从ajax调用WCF服务时遇到问题。

我向WCF传递一个对象数组,对于每个对象,我需要通过ADO.NET调用存储过程。

问题是当我在循环中调用此过程时,应用程序开始滞后。

你能告诉我,怎么可能解决它?

1 个答案:

答案 0 :(得分:1)

是否可以修改存储过程?通过修改存储过程以使用table-valued parameters,您可能会获得显着的性能优势。这样,您不必为每个对象调用一次存储过程,而是调用存储过程一次并传递所有对象。

链接文档很全面,但您可能需要谷歌搜索其他示例。第一次使用它们时,你必须学习一些新的步骤,但是一旦你完成它,它就是这种场景的强大工具。

在SQL服务器上,您可以创建一个新的表值类型。语法与定义表非常相似。然后修改存储过程以接收该参数。在您从参数中选择的过程中,就像在表格中一样。

在您的应用程序中,您创建一个DataTable,它对应于您已定义的表格,然后使用您要发送的数据行填充它。

如果你曾经见过有人做过奇怪的事情来将多个值传递给存储过程(比如使用逗号分隔的字符串),这就是解毒剂。