后端:
启用FileStream的SQL Server 2008数据库
数据访问:
Linq到实体
我有数以千计的pdf文件,目前驻留在一个文件服务器上。我想把这些pdf文件从文件服务器上移开,放到SQLServer2008数据库中,这样我可以更轻松地管理它们。
作为概念证明(即,为了确保SQL Server 2008中新的FileStream功能是我正在寻找的),我编写了一个小应用程序,可以通过entities框架将这些pdf文件读写到支持FileStream的数据库中。
应用程序非常简单;代码如下:
datReport report = new datReport();
report.ReportName = "ANL-7411-Rev-Supp-1.pdf";
report.RowGuid = Guid.NewGuid();
// The following line blows up on really big pdf's (350+ mb's)
report.ReportData = File.ReadAllBytes(@"C:\TestSavePDF\ANL-7411-Rev-Supp-1.pdf");
using (NewNNAFTAEntities ctx = new NewNNAFTAEntities()) {
ctx.AddTodatReport(report);
ctx.SaveChanges();
}
我在上面注释了发生错误的代码行。确切的错误是“System.outofmemoryexception”,这让我毫不怀疑文件大小是导致问题的原因。以上代码适用于较小的pdf。我不知道文件大小的确切限制在哪里,但我最大的pdf文件超过了350兆字节,他们得到了错误。
任何帮助都将不胜感激。谢谢