I have the following table in PostgreSQL with a column bytea:
CREATE TABLE "SystemFiles"
(
id integer NOT NULL,
name character varying(64),
contenttype character varying(64),
data bytea,
CONSTRAINT pk_id PRIMARY KEY (id)
)
Here is my essence:
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; }
}
And what my comparison looks like:
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");
}
}
With the above configuration, I can read, save, delete files from / to the database ...
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);
}
VIEW:
@if (!String.IsNullOrEmpty(Model.LogoImage))
{
<img src="@String.Format("data:image/png;base64,{0}", Model.LogoImage)" style="width: 200px"/>
}
source
share