11
我有一个名为Attachment
的POCO类,它映射到SqlServer中的一个表,其中包含一个VarBinary(max)字段。该字段包含文件。EF4将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文件。 任何帮助将文件从数据库中取出在一块,将不胜感激。
谷歌建议'0x504B0304'是一个zipfile的指标:http://www.google.co.uk/search?q=0x504B0304,如果有帮助的话? (顺便说一下,我认为'byte []'数组是正确的方式。) – 2012-01-06 12:41:56
是什么让你认为它已损坏? – ken2k 2012-01-06 12:51:23
谢谢欧文,这正是它的原因。现在有道理我知道它是什么。我现在可以解压缩文件并将内容传输到浏览器或文件系统。 – 2012-01-09 13:23:41