如何获取1000000条记录并将xml feed写入文件?

问题描述

| 我想创建一个c#控制台应用程序以获取大约1000000行数据。 在代码添加一些过滤逻辑并生成xml Feed。 我正在使用的那一个工作正常,但对于25万行数据,却超出了内存不足的异常范围。 这是我在Web应用程序中使用的代码示例,需要更改其控制台应用程序并使其高效。
var xrFeed = new XmlTextWriter(File.Create(@\"c:\\Items.xml\"),Encoding.UTF8);

xrFeed.WriteStartDocument();
xrFeed.WriteStartElement(\"Name\");

IEnumerable<ItemClass> items = _source.GetItems();

if (items != null)
{ 
    foreach (var i in items)
    {                    
        xrFeed.WriteStartElement(\"ad\");

            xrFeed.WriteStartElement(\"id\");
            xrFeed.WriteCData(m.ListingId.ToString());
            xrFeed.WriteEndElement();

            xrFeed.WriteStartElement(\"firstParameter\");
            xrFeed.WriteCData(\"parameter\");
            xrFeed.WriteEndElement();

            xrFeed.WriteStartElement(\"secondParameter\");
            xrFeed.WriteCData(\"parameter2\");
            xrFeed.WriteEndElement();

            xrFeed.WriteStartElement(\"thirdParameter\");
            xrFeed.WriteCData(\"parameter3\");
            xrFeed.WriteEndElement();

        xrFeed.WriteEndElement();
    }

    xrFeed.WriteEndElement();
    xrFeed.WriteEndDocument();

    xrFeed.Flush();
    xrFeed.Close();

    Response.End();
    DataBind();         
}
    

解决方法

        尝试每隔1000个项目冲洗一次写入器。另外,您可能想从数据源中部分检索数据。