Определения идентификатора / ключа в моделях EMF (Meta) - PullRequest
0 голосов
/ 15 июля 2011

Я застрял с очень простой проблемой, касающейся ЭДС, вот что у меня есть.

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 я хотел бы иметь идентификаторы от 0 до n. Однако, когда я делаю это, я получаю сообщение:

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

Надеюсь, моя проблема описана четко. Кто-нибудь знает, что я делаю не так? Спасибо!

Ответы [ 2 ]

1 голос
/ 03 июня 2012

EAttribute, который установлен как "ID", должен быть уникальным для всего ресурса.Если вы хотите ссылаться на элементы, используя конструкцию myReference [name = "SomeName"], вам следует использовать eKeys, тогда атрибут eKeyed должен иметь уникальное значение в пределах ссылки.

У меня сложилось впечатление, что вы определили "aID "и" bID "как" идентификаторы, тогда как это не то, что вы действительно хотите здесь.

0 голосов
/ 04 ноября 2011

Это можно решить с помощью OO hierachy. Вам просто нужно расширить A и B из общего класса Abstract, который содержит атрибут id и он установлен как ID в свойствах emf.

привет

...