EF4将varbinary(max)映射为Binary-代码第一错误

本文关键字:代码 Binary- 错误 映射 varbinary max EF4 | 更新日期: 2023-09-27 18:19:32

我有一个名为Attachment的POCO类,它映射到SqlServer中的一个表,其中有一个VarBinary(max)字段。该字段包含文件。

POCO类看起来像这个

public class Attachment
{
    public string AttachmentId { get; set; }
    public string AttachmentTypeId { get; set; }
    public string Title { get; set; }
    public string Text { get; set; }
    public Binary Data { get; set; }
}

映射看起来像这个

modelBuilder.Entity<Attachment>().Property(a => a.Data).HasColumnName("col_data");

然而,映射抛出错误

The type 'System.Date.Linq.Binary' must be a non-nullable value type in order to use it as a parameter 'T'

如果我使用字节数组,映射可以很好地工作,但这似乎会在传输过程中损坏数据。

数据库中的文件有一个初始二进制字符串,如:-

0x504B0304140008000800027923400000000000000000000000001F000000

我认为这是一个JPG文件。如果您能帮助将文件从数据库中完整地取出,我们将不胜感激。

EF4将varbinary(max)映射为Binary-代码第一错误

Binary数据类型仅适用于Linq到Sql。EF无法使用它。EF的正确数据类型为字节数组(byte[])。