2009-03-25 13 views
1

Visual Studioのエンティティデザイナに機能を追加、拡張する方法は不明ですが、ADO.NETエンティティデザイナを拡張する方法は?

たとえば、デザイナーのエンティティのプロパティを右クリックし、コンテキストメニューの新しいオプションを使用して、必要なものを実行できるようにしたいとします。

答えて

2

VS 2008 SP1のEntity Designerには、多くの拡張性のフックがありません。

  1. は、そこからはISelectionContainerを得ることができ、使用IVsMonitorSelection to get the current selectionyour own context menu
  2. に追加:何あなたができることは(今VSXとして知られているVSIP)のVisual Studio拡張性を活用しています。
  3. ユーザーが図表サーフェスを選択した場合は、ISelectionContainerをDiagramDocViewとしてキャストできます。これは、エンティティデザイナがデザイナのサーフェスに使用するフレームワークである「DSL」の一部です。
  4. ここから、DiagramDocView内で多くのことができます。 DiagramDocView.CurrentDiagramはDiagramオブジェクトを返します。 Diagram.NestedChildShapesを呼び出して、ダイアグラム内のすべての図形を取得できます。図を変更するには、DSLトランザクションを作成し、トランザクション内の図形を編集する必要があります。これは、単にエンティティデザイナー、すべて上記の別のレベルが正しく処理されますされています

    using (Transaction tx = store.TransactionManager.BeginTransaction(txText)) 
    { 
        // do something, such as creating an EntityTypeShape; 
        tx.Commit(); 
    } 
    

は、VS 2010でのエンティティデザイナーを使用すると、プロパティウィンドウからモデルに影響を与えることができるように、多くの拡張フックを持っていますまたはウィザードを使用します。新しい「モデルファースト」機能の新しい拡張性の仕事は基本的に、Visual Studio内のモデルから何かを構成可能な方法で生成することを可能にします。

関連する問題