【发布时间】:2015-12-09 01:43:52
【问题描述】:
我需要从数据库返回大约 500K 行(请不要问为什么)。
然后我需要将这些结果保存为 XML(更 URGH)和 ftp 这个文件到某个神奇的地方。
我还需要转换结果集中的每一行。
现在,这就是我正在做的说 ..TOP 100 结果:
- 使用 Dapper 的
Query<T>方法,将整个结果集扔到内存中 - 然后我使用 AutoMapper 将数据库 POCO 转换为我的 FileResult POCO
- 转换为 XML
- 然后将此集合保存到文件系统中
- 然后是 FTP
这适用于 100 行,但在尝试将 500K 结果转换为新集合时,我遇到 AutoMapper 出现内存不足异常。
所以,我想知道我是否可以这样做......
- 使用 Dapper 从 DB 流式传输数据
- 对于每一行,自动映射它
- 转换为 XML
- 将结果流式传输到磁盘
- 现在将该文件 ftp 到魔法世界
我正在尝试停止将 所有内容 放入 RAM。我的想法是,如果我可以流式传输内容,那么内存效率会更高,因为我只处理单个结果数据集。
【问题讨论】:
标签: c# sql-server stream dapper