Как я могу прочитать файловый поток SQL Server с ASP.NET Core

Я ищу способ конвертировать Pic.PathName() а также GET_FILESTREAM_TRANSACTION_CONTEXT() предоставить ссылку для скачивания в ASP.NET Core.

я видел SqlFileStream в.NET Framework, но он не работает в.NET Core.

1 ответ

Решение

Я не думаю, что есть разумный способ получить доступ к дескрипторам файлов для файловых потоков из ядра.NET. С технической точки зрения в Windows вы можете получить дескриптор файла через P/Invoke и драйвер ODBC, но вы, вероятно, никогда не захотите этого делать.

Потому что вы можете очень легко получить потоковый доступ к двоичному файлу потока через SQL Server. Использование доступа на основе дескрипторов имеет небольшое преимущество в производительности, но, вероятно, этого недостаточно. Если вам это действительно нужно, вам, вероятно, лучше использовать FileTables и просто получить доступ к файлу по пути UNC.

В любом случае, двоичные объекты файлового потока доступны как столбцы varbinary(max) в таблице, а.NET SqlClient поддерживает потоковые большие двоичные объекты. См. SqlClient Streaming Support для информации и примеров. Если это большой файл, вы хотите передать результат непосредственно клиенту.

Другие вопросы по тегам