流记录包含来自SQL Server的大字节数组

时间:2018-09-14 13:56:41

标签: c# sql-server ado.net streaming enterprise-library

我要stream从SQL Server记录。记录包含byte数组(图像)和有关图像的元数据。到目前为止,我所看到的只是如何流式传输列,而不是记录。

我有2个问题:

  • 我如何流式传输所有数据/记录并填充我的班级?

  • 为什么ExecuteSprocAccessor<>是我认为是缓冲区的,就像具有65MB图像的流(大约90秒)一样有效?

我继承了此代码,并认为它太慢且占用大量资源,因此我正在寻找替代方法,我认为这是最有意义的。

我尝试流式传输(有效):

System.IO.Stream stream;

using (var cmd = _mgr.GetStoredProcCommand("dbo.uspUserDocument_Select", paramValues))
{
      cmd.Connection = _mgr.CreateConnection();
      cmd.CommandTimeout = 180;

      await cmd.Connection.OpenAsync();

      using (var dr = await cmd.ExecuteReaderAsync(System.Data.CommandBehavior.SequentialAccess).ConfigureAwait(false))
      {
            while (await dr.ReadAsync())
            {
                 stream = dr.GetStream(4);
                 // I NEED TO GET THE WHOLE RECORD AND POPULATE A CLASS
            }
      }
}

使用ExecuteSprocAccessor

return _mgr.ExecuteSprocAccessor<UserDocument>("dbo.uspUserDocument_Select",rowMapper, paramValues).ToList();

0 个答案:

没有答案