У меня есть простое веб-приложение ASP.NET MVC, которое использует NHibernate с функцией автоматического сопоставления FluentNHibernate для доступа к данным. Я столкнулся со сценарием, в котором я хотел бы, чтобы NHibernate сохранял некоторые классы в виде двоичных данных.
Например, у меня есть что-то похожее на это:
public class User
{
    ...
    // This field will be persisted
    public virtual byte[] PortraitData { get; set; }
    // This method will get me what I'm actually interested in
    public virtual Image GetPortrait()
    {
        return SerializationHelper.Deserialize<Image>(PortraitData);
    }
}
(Я оставляю реализацию класса SerializationHelper на воображение читателя. Он не делает ничего сложного, просто сериализует и десериализует данные в байтовые массивы и обратно.)
Я хотел бы изменить приведенный выше код на это:
public class User
{
    ...
    public virtual Image Portrait { get; set; }
}
Итак, в основном я хочу сказать (Fluent)NHibernate, что он должен сохранять некоторые классы (указанные мной), сериализуя их в двоичное поле с именем фактического свойства. 
(В приведенном выше случае я хотел бы, чтобы он  сериализовать Image в поле varbinary с именем Portrait.)
Фактический сценарий, который у меня есть, немного сложнее, чем этот, но этот пример очень хорошо демонстрирует, чего я хочу достичь.  (Значение: класс System.Drawing.Image — не единственный, сериализация которого меня интересует.)
Я знаю, что во Fluent или в самом NHibernate должна быть какая-то конфигурация, позволяющая сделать именно это, но я не мог этого понять. Не могли бы вы рассказать мне, как это сделать?
Заранее спасибо за помощь!
 
                                                                     
                                                                     
                                                                     
                                                                    