none
XSDから派生したDataSetについて RRS feed

  • 質問

  • 開発環境 Visual Studio201/C#
    お世話になります。

    現在、Xmlスキーマ(xsd)ファイルをプロジェクトにドラッグ&ドロップし、自動的に作成されたDataSetクラスを使用しています。
    このXmlスキーマはRDB風のごくシンプルな構造です。
    派生されたDataSetクラス(ここでは仮にMyDataSetとします)では、

    ・MyDataSet.Tables["MyTable"]
    ・MyDataSet.MyTable

    と、どちらでもアクセス可能な事を確認しております。
    両者は参照の方法が異なるでけで同じテーブルが取得できるのだと認識しており、派生クラスでは後者のようなアクセスができて便利だな~と思っていました。
    そこに、ReadXml()でXmlファイルを読ませてみました。このXmlファイルは、前述のXmlスキーマによる妥当性チェックを行って妥当だと判断されたものです。
    実際、MyDataSet.Tables["MyTable"].Rows.Countで確認すると件数が取得でき、行データの中身も期待通り読み込まれているのが確認できました。
    しかし、MyDataSet.MyTable.Rows.Countを確認すると件数が0になっており、からっぽのようです。

    MyDataSet.Tables["MyTable"]とMyDataSet.MyTableは違うものなのでしょうか?
    派生クラスのソースをざっと眺めると違うもののように思えてきたのですが、ReadXml()で読み込んだデータが派生クラスのプロパティ(この場合はMyTable)で直接参照できないなら、何のためにスキーマに対応したプロパティが生成されるのだろう、と疑問に思っております。

    お分かりの方がおられましたら、よろしくお願いします。

    2011年6月23日 7:43