Самый быстрый способ создания XML из родительско-дочерней таблицы в C #? - PullRequest
1 голос
/ 05 апреля 2010

Предположим, у нас есть некоторые DataTable или IEnumerable с ChildID, ParentID и Title. Нам нужно сериализовать его в XML, как

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

Как я выяснил, стандартный DataTable.GetXML () возвращает что-то другое. Я думал об инициализации дерева классов, такого как Entity e = new Entity (ID, Title, ParentEntityID), и затем его сериализации. Таблица составляет около> 3000 элементов. Есть ли более быстрый способ?

1 Ответ

1 голос
/ 05 апреля 2010

Выбор с Linq to SQL в Linq to 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().

...