c# - 在 ASP.NET Core 中通过代码优先在 SQL 中使用 FileStream

我需要创建一个表并在该表中使用 FileStream。在 SQL Server 表中,我需要使用这一列:

CREATE TABLE TestTable
(
    FileID  UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL UNIQUE DEFAULT(NEWID()),
    Pic     VARBINARY(MAX) FILESTREAM NULL
)

现在在 EF Core 代码优先中,我该如何创建此列?

最佳答案

在 EF core 中,您不能使用 FileStream 将文件保存到数据库。

相反,您需要将文件转换为 byte[](这将在 sql server 中转换为 varbinary(max))并在使用内存流上传时复制文件内容.

型号:

public byte[] Picture { get; set; }

将文件转换为字节数组:

using (var ms = new MemoryStream())
{
  file.CopyTo(ms);
  byte[] fileBytes = ms.ToArray();
  string s = Convert.ToBase64String(fileBytes);
  // act on the Base64 data
}

引用

Store files in database using Entity Framework Core

How to convert a file into byte array in memory?

https://stackoverflow.com/questions/57999731/

相关文章:

reactjs - 更新已编辑输入的值

python - DRF 序列化程序字段重命名为其在验证数据中的源

sql-server - SSMS query-window 连接选项在网络断开后全部禁用,更正后无

c# - 如何在 PuppeteerSharp 中设置下载行为?

flutter - NestedScrollView with tabbarview scrolli

python - 在单元测试中使用补丁模块时,自动完成 pycharm 不起作用

html - 输入 DOM 元素字体大小小于预期,直到第一次单击页面

reactjs - 在 dropzone-material-ui 中更改段落样式

terminal - 尝试启动 Virtual Box 时如何修复这些错误?

c# - Windows 后台打印驱动程序 - 状态请求发送不正确