后端:启用 FileStream 的 SQL Server 2008 数据库
数据访问: Linq to Entity
我有成千上万的 pdf 当前驻留在文件服务器上。我想将这些 pdf 从文件服务器中移出并放入 SQL Server 2008 数据库中,以便更轻松地管理它们。
作为概念证明(即——确保 SQL Server 2008 中的新 FileStream 功能是我正在寻找的),我编写了一个小应用程序,该应用程序将通过实体框架读取和写入这些 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 兆字节,并且出现错误。
任何帮助将不胜感激。谢谢!