2014-06-10 99 views
1

我試圖將一個文件的字節添加在其中的字段的類型是VARBINARY的數據庫BU這需要追加由於文件大小constraits實體框架和附加VARBINARY場

是否有任何示例代碼/如何做到這一點的網站?或者甚至有可能使用實體框架將字節附加到該字段?

我需要將數據追加爲獲得1GB +的字節數組將會導致內存異常,所以我認爲這是唯一的方法..

一些代碼,我已經做了

using (var stream = File.OpenRead(fn)) 
{ 
    long bytesToRead = 1; 
    byte[] buffer = new byte[bytesToRead]; 

    while (stream.Read(buffer, 0, buffer.Length) > 0) 
    { 
     Item = buffer; 
    } 
} 

感謝您的幫助

回答

1

的基本思想是使實現更新的存儲過程像這樣:

UPDATE MyTable SET Col = Col + @newdata WHERE Id = @Id 

和使用ExecuteSqlCommand(see MSDN docs here)調用它。

但是在這種情況下,您只是將問題轉移到SQL Server端此列必須被檢索,修改並寫回)。

要真正擺脫內存的問題,實現使用UPDATETEXT您的存儲過程,這是對你的要求更有效率:

更新現有文本,ntext或圖像領域。使用UPDATETEXT僅更改文本,ntext或圖像列的一部分。使用WRITETEXT更新並替換整個文本,ntext或圖像字段

0

將大文件存儲在數據庫中時,通常將文件存儲在Web服務器上的光盤上而不是數據庫中。在數據庫中存儲文件的路徑,因此您的代碼可以訪問其內容,而無需在數據庫中存儲數據。

然而,如果你試圖操縱內存1GB +文件的內容,這將是有趣的但是你做到這一點...