【发布时间】:2009-11-05 16:38:14
【问题描述】:
后端:启用 FileStream 的 SQL Server 2008 数据库
数据访问: Linq to Entities
我有数以千计的 pdf 当前驻留在文件服务器上。我想将这些 pdf 从文件服务器中移出并放入 SQL Server 2008 数据库中,以便更轻松地管理它们。
作为概念证明(即——确保 SQL Server 2008 中的新 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 兆字节,并且出现错误。
任何帮助将不胜感激。谢谢!
【问题讨论】:
标签: asp.net linq-to-entities filestream out-of-memory