Я хочу stream
запись с SQL Server. Запись содержит массив byte
(изображение) и метаданные об изображении. Все, что я видел до сих пор, - это потоковая передача столбца, , а не записи .
У меня есть 2 вопроса:
Как мне передать все данные / запись и заполнить мой класс?
Почему ExecuteSprocAccessor<>
, который я предполагаю буферы, так же эффективен, как поток с изображением 65 МБ (около 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();