Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Linq到实体和SQL Server 2008文件流_Asp.net_Linq To Entities_Filestream_Out Of Memory - Fatal编程技术网

Asp.net Linq到实体和SQL Server 2008文件流

Asp.net Linq到实体和SQL Server 2008文件流,asp.net,linq-to-entities,filestream,out-of-memory,Asp.net,Linq To Entities,Filestream,Out Of Memory,后端:启用FileStream的SQL Server 2008数据库 数据访问:Linq到实体 我有数以千计的pdf文件,目前驻留在一个文件服务器上。我想把这些pdf文件从文件服务器上移开,放到SQLServer2008数据库中,这样我可以更轻松地管理它们 作为概念证明(即,为了确保SQL Server 2008中新的FileStream功能是我正在寻找的),我编写了一个小应用程序,可以通过entities框架将这些pdf文件读写到支持FileStream的数据库中 应用程序非常简单;代码如下:

后端:启用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兆字节,他们得到了错误


任何帮助都将不胜感激。谢谢

在您的示例中,您没有在FILESTREAM中大量使用流媒体

查看和,它们都展示了如何将SqlFileStream作为来自C#的流来使用-这应该比将整个PDF吸进内存要好得多(我相信)


马克

谢谢你!实际上,我想读一篇关于MSDN的文章,但我一定错过了关于SqlFileStream的部分。