2010-12-06 3 views
1

としてデータを返しますそして、アイテムのコレクションSQL Serverの2005 - いくつかのプロパティが含まれている、アイテムの収集と子のコレクション</p> <p>b)の子供 - - いくつかのプロパティが含まれています、私は三つのクラス</p> <p>a)の親を持つXMLまたはDataTableの

C)アイテム -

関係は以下の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> 

上記の3つのクラスの表のデータを使用する必要があります。私は、次のオプションを考えることができます: -

  1. は、ストアドプロシージャから上記 描かれているように、データベースから XMLの形式で、この構造体を取得し、 ビジネス層にXDocumentと同じように使用します。

  2. は データベースにそれらのDataTable内から3つの表の形式で取得し、 データを取得するために との間の関係を確立しますか?

どちらが最適なパフォーマンスを提供し、より良い方法であるか、同じ方法を実行する良い方法がありますか?

答えて

1

DataSetは、データをよりよく保持し(.NETコードを参照していると仮定します)、関係を維持しながら、データをXMLに保存し、一括挿入および更新を実行できます。だからパフォーマンスはとても良いはずです。 ORMを使用すると、ORMによって同様の機能が提供され、さらにLINQ(Entity FrameworkやLinq-SQLなどのORM)もサポートされるため、ORMを使用することをお勧めします。

+0

+1ただし、このXMLでデータを更新するつもりはありません。これは読み取り専用構造になります。それは私がデータテーブルを作成すべきではないと思う理由の1つです。ここに明かりを投げてください。明白なことがわからないのですか? –

+0

DataSet/DataTable(DataSetは1:Nの関係をサポートしていますが、DataTableはサポートしていません)はSqlCommandオブジェクトが返すものなので、データ型をキャストまたは変換する必要はありません。あなたは更新/挿入のためにそれを使用する必要はありません。あなたはそれを読み取り専用としてマークすることさえできるかもしれません。さらに.WriteXmlメソッドは、XMLデータ構造を生成します。 – CodeMonkey1313

関連する問題