【发布时间】:2009-11-08 17:30:43
【问题描述】:
我正在尝试将一个非常大的数据库(数 GB)转储到 XML。我使用 Linq-to-SQL 从数据库中获取数据,使用 Linq-to-XML 生成 XML。我使用XStreamingElement 来保持低内存使用。然而,在没有编写任何 XML 的情况下,该作业仍会分配所有可用内存。结构如下:
var foo =
new XStreamingElement("contracts",
<LinqtoSQL which fetches data>.Select(d =>
new XElement("contract",
... generate attributes etc...
using (StreamWriter sw = new StreamWriter("contracts.xml"))
{
using (XmlWriter xw = XmlWriter.Create(sw))
{
foo.WriteTo(xw);
}
}
我也尝试过保存:
foo.Save("contracts.xml", SaveOptions.DisableFormatting);
...无济于事。
有什么线索吗?
【问题讨论】:
-
序列化为sql怎么样?它会很大,但至少你可以按顺序阅读它......
标签: c# .net linq linq-to-sql linq-to-xml