C# MySql Blob 存储问题 [已关闭]

C# MySql Blob Storage Issue [closed]

提问人:Talan 提问时间:11/9/2023 更新时间:11/9/2023 访问量:37

问:


编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答这个问题。

10天前关闭。

我有一个我一直在写的 C# 程序。我能够直接连接到MySQL实例,并且可以毫无问题地存储各种数据。我有一个文件作为我尝试上传的模型的一部分,但如果它超过一定大小,它似乎不会存储为任何东西。以下是保存前的类的输出:enter image description here

这是类中的变量: public byte[] File { get; set; }

这是保存更改后的MySQL Select OCTET_LENGTH(File)的输出。enter image description here。从中可以看出,我已经能够保存一些东西,但不会保存太大的东西。以下是 MySQL Workbench 的输出,显示该列已定义为“longblob”:enter image description here

对此的任何帮助都会很棒,因为我对正在发生的事情感到困惑。

我尝试将文件类型更改为 MySqlDbType.Blob,但目前.Blob 没有被重新识别,我目前正在使用 MySql.Data 和 MySql.EntityFrameworkCore nuget 包。

C# MySQL

评论

3赞 Bradley Grainger 11/9/2023
idownvotedbecau.se/nocode

答:

1赞 Talan 11/9/2023 #1

我想通了,最后,我尝试创建一个 OnModelCreateing,如下所示:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<MainTable>()
        .Property(b => b.File).HasColumnType("longblob");
}

但是,这并没有解决问题,因为 MySql.EntityFrameworkCore 6.0.12 SDK 未正确实现长和中型 blob。最后,我安装了 Pomelo.EntityFrameworkCore SDK 并将连接对象更改为它,它立即运行。

评论

0赞 Bradley Grainger 11/10/2023
许多其他 SO 用户建议切换到 Pomelo:stackoverflow.com/a/40340623/23633 stackoverflow.com/a/76195488/23633 stackoverflow.com/a/41659935/23633 stackoverflow.com/a/46090571/23633 等。