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.
To quickly edit Target-Per-Entity-Hierarchy inheritance information for a complete hierarchy, simply use the Selected entity discriminator information pane at the bottom of the inheritance hierarchy viewer. Select the entity you want to edit the discriminator information for and then alter the information in the Selected entity discriminator information pane. Alternatively you can edit the information in a pop-up dialog by right-clicking the entity.
The following functionality is available through the right-click context menu:
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
orSystem.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.