我有一个名为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文件。 任何有助于将文件从数据库中取出的帮助将不胜感激。
答案 0 :(得分:21)
Binary
数据类型仅适用于Linq-to-Sql。 EF无法使用它。 EF的正确数据类型是字节数组(byte[]
)。