2010-04-05 67 views
1

假设我们有一些DataTable或IEnumerable与ChildID,ParentID和标题。 我们需要把它序列化到XML像在c#中从父子表创建XML的最快方法?

<Entity title=""> 
    <Entity title=""></Entity> 
    <Entity title=""></Entity> 
</Entity> 

正如我发现,标准DataTable.GetXML()返回不同的东西。我考虑初始化类树,如实体e =新实体(ID,标题,ParentEntityID),然后序列化它。表是大约3000个元素。有更快的方法吗?

回答

1

LINQ的选择到SQL到LINQ到XML

var document = new XDocument( 
    (
    from f in db.FirstTable 
    select new XElement("Entity", 
       new XAttribute("title", f.TitleField), 
       (   
        from s in f.SecondTable 
        select new XElement("Entity", 
          new XAttribute("title", f.TitleField), 
          new XAttribute("Entity", f.SomeField) 
       ) 
       ).ToArray() 
      ) 
    ).ToArray() 
); 

XElement构造,以及XDocument的,接受一个数组或内容,这就是为什么.ToArray()

+0

这可能是一个决定,但我们仍然在生产服务器上2.0)。我会尝试使用XMLDocument。 – rudnev 2010-04-05 10:08:30

+0

你可以编译它为.NET 2.0,不是吗? (请纠正我,如果它不适用于LINQ请) – 2010-04-05 12:21:14