在我的WCF服务中,我正在使用Command.ExecuteReader()
方法从SQL服务器检索数据。 数据大小非常大(约为1 GB),并且通过netTcp绑定将此数据传输到客户端。
我计划在WCF中实现流模式而不是缓冲模式。 有人可以指向任何文章或文档来完成相同的操作吗?
简单来说,我的目标是将IDataReader转换为流对象,该对象将传输到客户端,客户端希望将该流转换回数据集/数据表或可以与网格绑定的任何内容。
由于数据通过SP传递,并且输出集中的列数保持变化(我不想在代码中添加列数限制),因此无法将IDataReader转换为IEnumerable。
最终通信将从WCF服务到客户端应用程序进行数据集。 如果有任何解决方案,例如将数据集转换为流,将其发送到客户端,然后在客户端将流转换回数据集,也可以解决我的问题。
DataReader
的目的是从数据库层传输数据,而不是用作服务契约。 - Ricardo PontualDatareader
与数据库连接,它将逐一读取数据,由于需要循环读取以获取所有数据,所以无法通过 WCF 服务使用Datareader
。当您这样做时,必须将返回的数据传递给某个对象,通常是一个类,并且应该返回此类或此类的流。 - Ricardo Pontual