Déclarez simplement votre propriété en octet [] comme Ladislav l'a mentionné.
public class Product
{
public int Id { get; private set; }
public string Name { get; set; }
public byte[] ProductImage { get; set; }
}
C'est à peu près tout. Si vous ne mappez pas la propriété, la convention est qu'elle correspond à un varbinary(max)
. Si vous avez déjà une colonne d'image dans la base de données, ajoutez simplement [Column(TypeName = "image")]
la propriété ProductImage ou si vous préférez le mappage de code, ajoutez ceci à votre remplacement OnModelCreating dans la classe de contexte:
modelBuilder.Entity<Product>().Property(p => p.ProductImage).HasColumnType("image");
Le problème que j'ai avec cela est que je n'ai pas trouvé de moyen de rendre la propriété paresseuse car je ne veux pas nécessairement charger des données binaires chaque fois que je récupère un produit. Je ne suis pas sûr de me souvenir correctement, mais NHibernate peut le faire hors de la boîte.