Kaf*_*hne 9 entity-framework filestream
当我想将文件存储在文件流列中时,我总是需要将整个二进制文件读入内存:
using (MemoryStream memoryStream = new MemoryStream())
{
sourceStream.CopyTo(memoryStream);
binaryStore.Content = memoryStream.ToArray(); //Content = filestream column
}
Run Code Online (Sandbox Code Playgroud)
有没有办法与实体框架,直接放流?因为,如果我想上传一个大文件,我会得到一个OutOfMemoryException.
EF没有任何支持FIlESTREAM.它处理与FILESTREAM普通VARBINARY(MAX)列的所有交互,因此如果要使用流式传输,则必须直接使用ADO.NET.
没有看到任何有关 EF 中 FILESTREAM 支持的更新。(之前提到过 .net 3.5 sp1 版本的部分支持 )。我认为实体框架正在通过 TSQL 访问 FILESTREAM,并且显然您将无法获得 FILESTREAM 的流性能优势。(需要将所有文件内容读入内存)
因此,推荐的方法是使用SqlFileStream.Net API。
| 归档时间: |
|
| 查看次数: |
16060 次 |
| 最近记录: |