Deklarieren Sie einfach Ihr Eigentum als Byte [], wie Ladislav es erwähnt hat.
public class Product
{
public int Id { get; private set; }
public string Name { get; set; }
public byte[] ProductImage { get; set; }
}
Das ist so ziemlich alles. Wenn Sie die Eigenschaft nicht zuordnen, wird sie gemäß der Konvention einem zugeordnet varbinary(max)
. Wenn Sie bereits eine [Column(TypeName = "image")]
Bildspalte in der Datenbank haben, fügen Sie einfach die ProductImage-Eigenschaft hinzu, oder wenn Sie die Codezuordnung bevorzugen, fügen Sie diese Ihrer OnModelCreating-Überschreibung in der Kontextklasse hinzu:
modelBuilder.Entity<Product>().Property(p => p.ProductImage).HasColumnType("image");
Das Problem dabei ist, dass ich keinen Weg gefunden habe, die Eigenschaft faul zu machen, da ich nicht unbedingt jedes Mal Binärdaten laden möchte, wenn ich ein Produkt abrufe. Ich bin mir nicht sicher, ob ich mich richtig erinnere, aber NHibernate kann dies sofort tun.