後端: SQL Server 2008數據庫使用FileStream啓用LINQ到實體和SQL Server 2008中的FileStream
數據訪問: LINQ到實體
我有成千上萬的PDF文件的當前駐留在文件服務器上。我想將這些pdf從文件服務器移到SQL Server 2008數據庫,以便我可以更輕鬆地管理它們。作爲一個概念證明(即 - 確保SQL Server 2008中新的FileStream功能是我正在尋找的功能),我寫了一個小應用程序,它可以通過FileStream啓用的數據庫讀取和寫入這些pdf文件實體框架。
該應用程序非常簡單;這裏的代碼:
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兆字節,並且他們得到了錯誤。
任何幫助將不勝感激。謝謝!
謝謝!我實際上是MSDN文章的一部分,但我一定錯過了關於SqlFileStream的部分。 – Jagd 2009-11-05 17:26:40