У меня есть следующая таблица в PostgreSQL со столбцом bytea
:
CREATE TABLE "SystemFiles"
(
id integer NOT NULL,
name character varying(64),
contenttype character varying(64),
data bytea,
CONSTRAINT pk_id PRIMARY KEY (id)
)
Вот моя сущность:
public class SystemFiles
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual string ContentType { get; set; }
public virtual byte[] Data { get; set; }
}
И вот как выглядит мое отображение:
public class SystemFilesMap : ClassMap<SystemFiles>
{
public SystemFilesMap()
{
Id(x => x.Id, "id").GeneratedBy.Identity();
Map(x => x.Name).Column("name");
Map(x => x.ContentType).Column("contenttype");
Map(x => x.Data).Column("data");
}
}
С вышеупомянутой конфигурацией я могу читать, сохранять, удалять файлы из / в базу данных ...
CONTROLLER:
using (var session = RisDbHelper.OpenSession())
{
var tempImage = (from c in session.Query<SystemFiles>() where c.Name == "Logo" select c).FirstOrDefault();
model.LogoImage = Convert.ToBase64String(tempImage.Data);
}
ВИД:
@if (!String.IsNullOrEmpty(Model.LogoImage))
{
<img src="@String.Format("data:image/png;base64,{0}", Model.LogoImage)" style="width: 200px"/>
}