Entity Editor, Inheritance Info Tab
The Inheritance Info tab contains the information and editors for working
with the inheritance hierarchy the entity is in, editing discriminator
information and inheritance hierarchy types. Tab is disabled if the entity
isn't in an inheritance hierarchy. The different parts are described below
The Inheritance Info Tab
The Inheritance Info Tab contains an Inheritance Hierarchy Viewer which
displays the entire inheritance hierarchy the entity is in. The entity
currently open in the entity editor is marked with a red band around the
edge of the header, as shown above indicated with 'Entity opened in editor'.
Editing inheritance information is done through right-clicking an entity
or inheritance relationship in the hierarchy and selecting an option from
the context menu. The following functionality is available:
For Inheritance Relationship:
- Delete. When this menu option is chosen, the
inheritance relationship is removed, and all subtypes (directly and
indirectly) connected to the supertype over the deleted inheritance
relationship are removed from the inheritance hierarchy and the viewer,
as they're no longer part of the inheritance hierarchy.
For Entity:
- Edit... This opens the particular entity in its Entity
Editor.
- Lookup in Project Explorer. This will look up the particular
entity in the project explorer.
- Add Selected Entities to New or Existing Model View... This
will open the model view selector which allows you to select a new or
existing model view to which the selected entities are added.
- Inheritance Type. This menu is usable to select the
inheritance type for that particular entity. LLBLGen Pro v4 designer
supports multiple types of inheritance in a single hierarchy: both
Target Per Entity (every entity is mapped onto a different table/view)
and Target Per Entity Hierarchy (all entities in the hierarchy are
mapped onto the same table/view) are mixable in an inheritance
hierarchy. Not all target frameworks support all inheritance types or
mixing of inheritance types. It's recommended to keep one inheritance
hierarchy type per hierarchy and only mix the inheritance hierarchy
types if you have no other choice.
- Edit Discriminator Information. When the entity is in a
hierarchy of type Target Per Entity Hierarchy, so all entities in the
inheritance hierarchy are mapped onto the same table/view, a
discriminator field has to be specified in the super type or
root of the hierarchy of that type. This field has to be of type System.Byte/Int16/Int32/Int64/Guid/Decimal/Boolean or System.String
and can't be optional.
Furthermore, every type in the
hierarchy, including the root, has to have a value set for this
discriminator field. To do this, select Edit Discriminator
Information for an entity from its context menu. This opens the
Discriminator Info editor which allows you to specify the discriminator
value for a particular entity and, if the entity is the root of the
hierarchy, the discriminator field. The option is disabled for entities
in a hierarchy of type Target Per Entity, as hierarchies of that type
don't need a discriminator field.