我需要从数据库返回大约 500K 行(请不要问为什么)。
然后,我需要将这些结果保存为 XML(更紧急),并将该文件通过 ftp 传输到某个神奇的地方。
我还需要转换结果集中的每一行。
现在,这就是我正在做的事情。TOP 100
结果:
- 使用 Dapper 的
Query<T>
方法,它将整个结果集扔到内存中
- 然后我使用 AutoMapper 将数据库 POCO 转换为我的 FileResult POCO
- 转换为 XML
- 然后将此集合保存到文件系统中
- Then FTP
这对于 100 行来说效果很好,但是当我尝试将 500K 结果转换为新集合时,我遇到了 AutoMapper 内存不足的异常。
所以,我想知道我是否可以做到这一点......
- 使用 Dapper 从数据库流式传输数据
- For each row,自动映射它
- 转换为 XML
- 将结果流式传输到磁盘
-
- 现在将该文件 ftp 到 magic-land
我试图停止投掷一切进入内存。我的想法是,如果我可以流式传输内容,那么内存效率会更高,因为我只处理单个数据结果集。
使用 Dapper 的Query<T>
方法,它将整个结果集扔到内存中
那么,可选参数之一是一个很好的工作bool
让您选择是否缓冲;p
只需添加, buffer: false
到您现有的电话Query<T>
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)