nhibernate:保存文件并从数据库检索文件

时间:2014-11-01 05:02:55

标签: c# sql-server nhibernate

我想使用nhibernate在mssql中保存PDF文件。我该怎么做呢。

我对它有点了解here,它告诉你可以创建一个类型来保存文件:

Map(x => x.Bytes)
  .CustomSqlType("VARBINARY (MAX) FILESTREAM")
  .Length(2147483647)

但是我仍然无法理解c#字段应该是什么类型的&如果它不是FileInfo / FileStream那么如何读写该字段。

1 个答案:

答案 0 :(得分:4)

DB类型Varbinary,具有C#表示byte[]

public virtual MyFile byte[] { get; set; }

基于应用类型(例如带有ASP.NET Web API的网站),我们可以提供“下载”功能,例如

protected virtual HttpResponseMessage Download(string fileName, string contentType
    , byte[] data)
{
    var path = fileName;
    var result = new HttpResponseMessage(HttpStatusCode.OK);
    var stream = new MemoryStream(data);
    result.Content = new StreamContent(stream);
    result.Content.Headers.ContentType = new MediaTypeHeaderValue(contentType);
    result.Content.Headers.Add("Content-Disposition", "attachment; fileName=" + path);

    return result;
}