0

QuickGraph は、以下の私の要件をサポートしてくれますか?

(a) ノードのグラフとノード間の方向関係をモデル化したい - たとえば、URL でリンクされた Web ページ/ファイルをモデル化したり、IT インフラストラクチャとハードウェア/ソフトウェア間の依存関係をモデル化したりする。ライブラリには、次のようなメソッドが含まれます。

* Node.GetDirectParents()   //i.e. there could be more than one direct parent for a node
* Node.GetRootParents()  //i.e. traverse the tree to the top root parent(s) for the given node
* Node.GetDirectChildren()
* Node.GetAllChildren()

(b) データをデータベースに永続化する必要があるため、SQL Server と理想的には SQLite もサポートする必要があります。

これらの要件をサポートしている場合は、ぜひ聞いてください。

  1. 掘り下げる QuickGraph の任意の部分へのポインタはありますか?

  2. データベースの永続性を使用する方法に関して、その使用法に関する最良の概念は何ですか - すべての検索/メソッドがデータベースで直接動作することを前提とするより単純な設計ですか、それとも QuickGraph はメモリ内で作業できるようにスマートをサポートし、「保存しますか? " 適切な時点ですべての変更をデータベース化します (たとえば、ADO.net が DataTable で行うように)

前もって感謝します

4

1 に答える 1

1

グレッグ、

を。はい、Quickgraph はこの方法でかなり簡単にノードを検索できます。私はあなたの他の質問ですでに1つの例を提供しました.

b. 私の知る限り、SQL シリアライゼーションは QuickGraph に「組み込まれている」わけではありません。独自のカスタム実装を構築する必要があります。ほとんどのグラフは頂点とノードの単純なリスト以上のものを表すため、QuickGraph でこれを自動的に (そしてネイティブに) 実現するのは非常に困難ですが、自分で実装するのはかなり簡単です。

  1. QuickGraph ソースの GraphML シリアライゼーション セクションを確認してください。始めるためのヒントが得られるかもしれません。
  2. QuickGraph はメモリ内で動作しますが、永続ストアに対しては機能せず、そのように設計されていません (永続ストアは一般的にかなり遅いため)。そのため、情報を手動で保存する必要があります。ただし、VertexAdded、VertexRemoved、EdgeAdded、EdgeRemoved などのさまざまな QuickGraph イベントを監視して、グラフがいつ変更されたかを判断し、その時点でシリアル化を実行できます。

-ダグ

于 2010-05-05T21:07:10.663 に答える