我需要创建一个表并在该表中使用 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/
相关文章:
python - DRF 序列化程序字段重命名为其在验证数据中的源
sql-server - SSMS query-window 连接选项在网络断开后全部禁用,更正后无
c# - 如何在 PuppeteerSharp 中设置下载行为?
flutter - NestedScrollView with tabbarview scrolli
python - 在单元测试中使用补丁模块时,自动完成 pycharm 不起作用
html - 输入 DOM 元素字体大小小于预期,直到第一次单击页面
reactjs - 在 dropzone-material-ui 中更改段落样式