Role オブジェクト (モデル デザイナ)
Role オブジェクトは、エンティティのロールを定義します。ロールは、2 つの関連エンティティの説明です。このオブジェクトは、Field オブジェクトからプロパティを継承します。
プロパティ
名前 |
カーディナリティ |
型 |
説明 |
---|---|---|---|
Name |
0-1 |
String |
ロール名です。Cardinality が One または OptionalOne の場合、関連エンティティの Name が既定になります。それ以外の場合、文字列値は既定で、関連エンティティの CollectionName になります。 |
0-1 |
Object |
ロールの Linguistics プロパティです。Name を省略した場合、この要素は許可されません。その場合、SingularName および PluralName は既定で、それぞれ関連エンティティの Name および Collection になります。 |
|
RelatedRoleID |
1 |
String |
対象エンティティの対応するロールの ID です。このロールは、RelatedRole にすることはできません。また、RelatedRole の RelatedRole はこのロールである必要があります。 |
Cardinality |
1 |
Enum |
One、Many、OptionalOne、OptionalMany という 4 つのオプションがあります。 |
ContextualName |
0-1 |
Enum |
このロールをエンティティに到達するために使用した場合、ContextualName 列挙子は、このロールの対象エンティティの属性に関する ContextualName の設定を上書きします。この列挙子は、Attribute、Merge、または Role のいずれかの値を取ることができます。この列挙子の既定値は Attribute で、コンテキスト名として属性名を使用します。Merge を指定すると、属性名とロール名がマージされ、コンテキスト名として使用されます。この属性がエンティティの単一の識別属性である場合、Role を指定すると、コンテキスト名としてロール名が使用されます。この属性がエンティティの単一の識別属性でない場合、Role は Merge と同様に扱われます。 |
0-1 |
Object |
このロールをエンティティに到達するために使用した場合、このロールの対象エンティティについて、クライアント アプリケーションが表示しない一連のフィールドおよびフィールド フォルダです。たとえば、Address が HomeAddress ロールを使用して表示されている場合には、AddressType 属性は非表示になります。 |
|
ExpandInline |
0-1 |
Boolean |
クライアント アプリケーションでロールをユーザーに対して表示せず、その代わりに関連エンティティのフィールドをこのエンティティの一部であるかのように表示することを示します。ロール拡張と参照動作の両方を指定した場合は、ロール拡張が優先されます。 |
PromoteLookup |
0-1 |
Boolean |
クライアント アプリケーションが、親エンティティを参照として表示した場合には、対象エンティティも参照として表示することを示します。この値は、ロールの親エンティティと対象エンティティの両方が参照エンティティである場合にのみ許可されます。参照ロールの関連エンティティの参照ロールは、PromoteLookup の値が true で、かつ昇格されるロールの関連エンティティがそのロールの昇格先エンティティ、またはその直接の先祖または子孫の 1 つでない場合に昇格されます。 |
Preferred |
0-1 |
Boolean |
このロールを含んでいる Paths が、優先されるロールを含まない Paths よりも優先されることを示します。選択できるパスが複数存在する場合に、他のエンティティに到達するために使用するパスを示すには、この Boolean を使用します。 |
Recursion |
0-1 |
Boolean |
リレーションシップを既定で再帰的にトラバースするかどうかを示します。再帰は、親エンティティが対象エンティティと同じである場合にのみ許可されます。ロールは再帰的に展開されますが、エンティティ A から A のコンテキスト、またはその直接の先祖または子孫へのアイテムの展開が試行された時点で、再帰は停止されます。 |
0-1 |
Object |
このロールを表すデータベース オブジェクトです。リレーションの指定した端は、RelatedRole 要素を含んでいる Entity がバインドされているテーブル内の列、またはそのエンティティがバインドされている列と同じ列にバインドする必要があります。リレーションのもう一方の端は、この Role の親エンティティがバインドされているテーブル、またはこのエンティティがバインドされている列と同じ列に存在する必要があります。この Role のエンティティが、RelatedRole のエンティティがバインドされている列を含んでいるテーブルにバインドされている場合 (またはその逆) 以外は、バインドする必要があります。この場合、列とテーブルの包含関係が前提され、バインドは指定されません。 |