如何使用 ASP.NET Core 读取 SQL 服务器文件流

How can I read SQL Server filestream with ASP.NET Core

我正在寻找一种方法来转换 Pic.PathName()GET_FILESTREAM_TRANSACTION_CONTEXT() 以提供 link 以便在 ASP.NET Core 中下载。

我在 .NET Framework 中看到 SqlFileStream,但它在 .NET Core 中不起作用。

我认为没有合理的方法从 .NET Core 获取文件句柄访问文件流 blob。从技术上讲,在 Windows 上,您可以通过 P/Invoke 和 ODBC 驱动程序获取文件句柄,但您可能永远不想这样做。

因为您可以很容易地通过 SQL 服务器获得对文件流 blob 的流式访问。使用基于句柄的访问有轻微的性能优势,但可能还不够重要。如果你真的需要它,你可能最好使用 FileTables,并且只使用 UNC 路径访问文件。

无论如何,文件流 blob 可以作为 table 上的 varbinary(max) 列访问,并且 .NET SqlClient 支持流式 blob。有关信息和示例,请参阅 SqlClient Streaming Support。如果它是一个大文件,您将希望将结果直接流式传输到客户端。