【发布时间】:2014-10-08 22:04:28
【问题描述】:
所以我有一个对象集合;说需要序列化为 CSV 文件的 Person 对象。
详细说明: 我以 40k-50k 行的批次从数据库中获取数据,这些行被添加到 Person 集合中 这总计超过百万条记录 我需要将其序列化为 csv 文件。
语言 C#
您能否建议一种有效的方法来实现这一目标?
编辑:我尝试了什么。 我正在使用 Dapper 来获取这批 50k 条记录
var p = new DynamicParameters();
p.Add("@RequestId", new Guid("1B139CAB-1D53-467D-A013-03A5DB410937"));
IEnumerable<Person> resultSet = _dbConn.Query<Person>(sql: "FetchPersons", param: p, commandType: CommandType.StoredProcedure);
一旦我将它们提取到一个集合中,我会执行以下操作:
using (TextWriter writer = File.CreateText(@"outPutFile.csv"))
{
foreach (Person person in personColl)
{
writer.WriteLine(person.FirstName + "," + person.LastName + "," + person.Param1 + "," + person.Param2 + "," + person.Param3);
}
writer.Flush();
}
上述方法合适吗?
【问题讨论】:
-
你已经尝试了什么?
-
只要打开一个SqlReader,一条一条读取记录,立即写入文件。或者试试
bcp工具:simple-talk.com/sql/database-administration/…
标签: c# collections large-data