2011-07-15 2 views
0

EMFに関する非常に基本的な問題が残っています。EMF(Meta)モデルのID /キー定義

EClass A: 
    aID : EInteger (Key: true) 

EClass B: 
    bID : EInteger (Key: true) 

EClass C: 
    Reference refA: to elements of A, containment: true, EKeys: aID, 0 .. n 
    Reference refB: to elements of B, containment: true, EKeys: bID, 0 .. n 

ここに問題があります。私のaとbの両方のリストでは、IDを0からnにしたいと思っています。しかし、私がこれをすると、私はメッセージを受け取ります:

The ID '1' of 'A' collides with that of 'B' 

私の問題がはっきりと記述されることを願っています。誰かが私が間違っていることを知っていますか?ありがとう!

答えて

0

これはOO階層を使用して解決できます。 id属性を含む共通のAbstractクラスからAとBを拡張するだけで、emfプロパティでIDとして設定されます。 「ID」として設定されている

よろしく

1

アンEAttributeは、ユニークなリソース全体でなければなりません。 myReference [name = "SomeName"]構造を使用して要素を参照する場合は、eKeysを使用する必要があります.eKeyed属性は参照内で一意の値を持つ必要があります。

「aID」と「bID」を「ID」と定義した印象を受けていますが、これはあなたが本当にここで欲しいものではありません。

関連する問題