我有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");
}
}
通過上述配置,我可以讀取sa從數據庫中刪除文件...
控制器:
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"/>
}