Ho una classe POCO denominata Attachment
che esegue il mapping su una tabella in SqlServer con un campo VarBinary (max) in esso. Il campo contiene file.Mappatura varbinary (max) EF4 - Codice primo errore
La classe POCO assomiglia a questo
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; }
}
la mappatura assomiglia a questo
modelBuilder.Entity<Attachment>().Property(a => a.Data).HasColumnName("col_data");
Tuttavia la mappatura sta gettando un errore
The type 'System.Date.Linq.Binary' must be a non-nullable value type in order to use it as a parameter 'T'
La mappatura funziona bene se uso un array di byte ma sembra che stia corrompendo i dati durante il passaggio.
Il file del database ha una stringa binaria iniziale come: -
0x504B0304140008000800027923400000000000000000000000001F000000
Credo che questo sia un file JPG. Qualsiasi aiuto per ottenere il file dal DB in un unico pezzo sarebbe apprezzato.
Google suggerisce che '0x504B0304' è un indicatore di un file zip: http://www.google.co.uk/search?q=0x504B0304, se questo è di aiuto? (Avrei pensato che un array 'byte [] 'è il modo giusto per procedere, comunque.) –
Cosa ti fa pensare che sia corrotto? – ken2k
Grazie Owen, è esattamente quello che era. Ha senso ora so di cosa si tratta. Ora sono in grado di decomprimere il file e trasmettere il contenuto al browser o al file system. –