Просто оголосіть своє майно байтом [], як згадував Ладислав.
public class Product
{
public int Id { get; private set; }
public string Name { get; set; }
public byte[] ProductImage { get; set; }
}
Це майже все. Якщо ви не зіставите властивість за умовою, це означає, що воно відображається у varbinary(max)
. Якщо у вас вже є стовпець із зображеннями в базі даних, просто додайте [Column(TypeName = "image")]
властивість ProductImage, або якщо ви віддаєте перевагу зіставлення коду, додайте це до свого перевизначення OnModelCreating у класі контексту:
modelBuilder.Entity<Product>().Property(p => p.ProductImage).HasColumnType("image");
Проблема у мене з ним полягає в тому, що я не знайшов способу зробити властивість лінивим, оскільки мені не обов'язково потрібно завантажувати двійкові дані кожного разу, коли я отримую продукт. Я не впевнений, що пам’ятаю правильно, але NHibernate може це зробити нестандартно.