2009-03-02 19 views
3

.NET DataSetクラスの「フードの下で」使用されている構造とアルゴリズムの詳細については、.NETデータセットの実装方法

私は現在、DataSetクラスのような一般的なインメモリデータ構造の実装を持っていない言語で働いています。私は自分自身を構築しなければならなくなるかもしれませんが(広範囲に及ぶわけではありませんが)、ハッキングを開始する前に、既存のシステムがどのように組み合わされているかを知りたいと思います。 (ありがとうDouglas Hofstadter

私はMono implementationで読んでいますが、他のリンク、記事、またはアイデアをいただければ幸いです。あなたがオリジナルのコメントを含む、すべてにアクセスできるようになります

答えて

4

火災アップリフレクターとソースに直行...

1

リフレクターはhttp://www.red-gate.com/products/reflector/index.htmで利用可能で、あなたはデータセットが実装されている方法を正確に見ることができます。

またデータアダプター、特にDbDataAdapter.Fill、DataTableの、特にDataTable.Load、とのDataRowとDbDataReaderのを見たいと思うでしょう。 SqlDataAdapter、SqlCommandなどの特定の実装のいくつかを調べることができます。

DataSetは、爪のように見えるすべてについて古い格言の証です。それは.NETで使用されていました。特に、Webサービスとそのクライアント間でデータを転送するためには使用しないでください。相互運用性はよくありません。

0

ブックと呼ばれるプログラミングADO.Net 2.0コア基準は、多くの問題や議論の内部データ構造を含むデータセットの優れた記述を、有しています。

データセットの主な実装は、Red/Black自己分散ツリーに依存しています。

挙げブックは、それが適切な列のルックアップテーブルを検索する文字列比較を使用するように文字列を介してデータコードのルックアップは、効率的に実施されなかったことであることを他の大警告。行の数をハードコーディングすることで、テーブルと列の両方で検索パフォーマンスがかなり向上する可能性があります。もちろん、あなたがそれを行うためのツールを書かない限り、これはメンテナンスの悪夢です。

1

ADO.Netデータセットのキーデータ構造は、それが複雑でRed-Black tree

ですが、その操作のための良好な最悪のケース 実行している時間があり、実際に効率的 です:それは検索することができ、 O(log n)時間に挿入、削除を行います。 ここで、nはツリーの の要素の合計数です。非常に簡単に言えば、赤黒 ツリーは、ツリーが適度 平衡であることを確認し、 インサート二分探索木であり、インテリジェント除去します。

関連する問題