Besides a full validation system, the LLBLGen Pro designer also contains a deep analysis system for the models as well as the meta-data. This system runs in the background and reports information about the project's contents and how to use some features of the designer to your advantage. Additionally to this it reports issues it finds which aren't errors in the project but are nevertheless problems you might want to look into.
The designer performs two types of analysis: Entity Model Analysis and Meta-data Analysis. Entity Model Analysis is started when entity model has been changed, e.g. you add an entity or rename a field. Meta-data analysis is started when the meta-data has been changed, e.g. after a sync action. All analysis runs in the background.
Analysis is not taking into account the sync settings on relational model data containers, so it reports information it finds always, regardless of whether you work mostly model first or database first. This can help you discover features you otherwise would overlook.
Analysis results are reported mostly in information messages in the Errors and Warnings pane, docked at the bottom of the designer. Issues found are reported as warnings instead of information messages. All come with suggestions you can click to activate a feature or correct the issue (if applicable).
The following analysis is done for Entity Model Analysis
- If there are one or more PK-PK relationships in the model, an information message is reported which offers to construct inheritance hierarchies automatically
- If a foreign key field is shared among multiple relationships, it's reported as a warning.
- Duplicate relationship between the same entities and fields is reported as a warning.
- If a value type's fields are found to be re-used among entities an information message is reported which suggests to refactor these group of fields to the value type so modeling is easier. The suggestions in the information message have ready to use commands to refactor fields in entities with the value type in question, so it can greatly help re-using value types this way without a lot of effort. This is done only for value types with two fields or more to avoid a long list of matches with e.g. single field value types. The names have to match as well as the types. If the grouping option in the project settings is set as separate projects, the value types and entities are examined per group.
- A unique constraint which is identical to the set of identifying fields will be reported as a warning so you can safely remove the unique constraint, as it is redundant.
The following analysis is done for Meta-data Analysis
- If there are unmapped elements of type T, per type T an information message is reported which offers to reverse engineer them to new model elements. Per type T the different new model types (e.g. view to entities and view to typed views) are offered as separate suggestions.
- A duplicate Foreign Key Constraint is reported as a warning.
- A Foreign Key constraint pointing to itself is reported as a warning.