2010-04-05 55 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