我要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();