2014-06-10 61 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 +文件的内容,这将是有趣的但是你做到这一点...