entity-framework – SQL FileStream Entity Framework存储大文

当我想将文件存储在文件流列中时,我总是需要将整个二进制文件读入内存:

using (MemoryStream memoryStream = new MemoryStream())
{
   sourceStream.CopyTo(memoryStream);
   binaryStore.Content = memoryStream.ToArray(); //Content = filestream column
}

有实体框架的方法,直接放流吗?因为,如果我想上传一个大文件,我会得到一个OutOfMemoryException.

解决方法

没有在EF中看到有关FILESTREAM支持的任何更新. (以前作为.net 3.5 sp1版本
here的部分支持提到).我认为实体框架正在通过TSQL访问FILESTREAM,并且显然您将无法获得FILESTREAM的流性能优势. (需要将所有文件内容读入内存)

因此,推荐的方法是使用SqlFileStream .Net API.

Using SqlFileStream in C# to Access SQL Server FILESTREAM Data

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注