2010-12-06 2 views
1

у меня есть три классаSql сервера 2005 - Возвращение данных в виде XML или DataTables

а) Родитель - Который содержит некоторые свойства, коллекцию Item и коллекцию детей

б) Ребенок - Который содержит некоторые свойства и коллекция Item

с) Пункт - Который содержит некоторые свойства

связь изображается в приведенной ниже структуре XML.

<Parents> 
    <Parent1> 
     <Property1></Property1> 
     <Property2></Property2> 
     <Property3></Property3> 
      <Parent1Children> 
       <Child1> 
       <Child1Property1></Child1Property1> 
       <Child1Property2></Child1Property2> 
       </Child1> 
       <Child2> 
       <Child2Property1></Child2Property1> 
       <Child2Property2></Child2Property2> 
       </Child2> 
      </Parent1Children> 
     <Parent1SomeCollection> 
      <Item1> 
       <Item1Property1></Item1Property1> 
       <Item1Property2></Item1Property2> 
      </Item2> 
      <Item2> 
       <Item2Property1></Item2Property1> 
       <Item2Property2></Item2Property2> 
      </Item2> 
     </Parent1SomeCollection>  
    </Parent1> 
</Parents> 

Мне нужно использовать данные из таблиц трех классов выше. Я могу думать о следующих вариантах: -

  1. Получить эту структуру в виде XML из базы данных, как показан выше из хранимой процедуры и использовать так же, как XDocument в бизнесе-слое.

  2. Получить в виде 3-х таблиц из базы данных им в DataTable и установить связь между получить данные?

Какой из них даст оптимальную производительность и лучший способ, или есть ли лучшие способы сделать то же самое?

ответ

1

DataSet лучше сохранит данные (при условии, что вы ссылаетесь на .NET-код) и поддерживайте отношения, позволяя сохранять данные в XML и выполнять массовые вставки и обновления. Поэтому производительность должна быть очень хорошей. Использование ORM также было бы хорошей идеей, поскольку ORM предоставит вам аналогичную функциональность, плюс он может поддерживать LINQ (ORM, такие как Entity Framework и Linq-to-SQL).

+0

+1 Однако я не намерен обновлять данные в этом XML-документе. Это будет структура, доступная только для чтения. Это одна из причин, почему я не думаю, что я должен создать datatable. Не могли бы вы рассказать немного света? Если я не вижу очевидного? – 2010-12-07 04:40:13