Building Block Definitions

The LLBLGen Pro designer works with a set of building blocks which together form the Project. These various building blocks are defined with a brief definition below, to make you familiar with the terms and names used throughout the documentation.

Abstract Entity Definition

An Abstract Entity Definition is defined by Dr. Peter Chen in the article "The entity-relationship model - toward a unified view of data", ACM Transactions on database systems vol.1 no.1, march 1976, page 9-36. (Click to see a list of PDF versions online)

Entity and Entity set. Let e denote an entity which exists in our minds. Entities are classified into different entity sets such as EMPLOYEE, PROJECT, and DEPARTMENT. There is a predicate associated with each entity set to test whether an entity belongs to it. For example, if we know an entity is in the entity set EMPLOYEE, then we know that it has the properties common to the other entities in the entity set EMPLOYEE. Among these properties is the afore- mentioned test predicate.

Action Combination

The combination of one or more data manipulation language actions, which are Create, Retrieve,  Update and Delete.

Derived Model

A Derived Model is a model containing Root Derived Elements which are derived from Abstract Entity Definitions and which are used as DTOs in MVC / Service APIs and e.g. Document Databases.

Discriminator Field

A Discriminator Field is a field in the root Entity Definition of an inheritance hierarchy of type Target Per Entity Hierarchy which marks at runtime per instance of an Entity Definition which Entity Definition type the instance is of.

Discriminator Value

A Discriminator Value is the unique value assigned to an Entity Definition for the Discriminator Field of the inheritance hierarchy of type Target Per Entity Hierarchy the Entity Definition is in.

Embedded Derived Element

A derived element which is the source of a field in another derived element, is called an embedded derived element.

Entity Definition

An Entity Definition is the in-designer representation of an Abstract Entity Definition found in the domain. Example: an Entity Definition of 'Customer' in the designer means it is the representation of the Abstract Entity Definition 'Customer' which can be found in the domain of the project.

Entity Definition Instance

An Entity Definition Instance is at runtime the group of one or more data elements which represent an instance of an Abstract Entity Definition. Example: the data which forms a 'Customer' entity is an Entity Definition Instance.

A Field mapped onto a Related Field or Forf is a field in entity X which represents a field in an entity Y, where Y is related to X over a 1:1 or m:1 relationship. A Forf is not seen as a real field so it can't participate in queries. Example: Order.CompanyName, which is mapped onto Order.Customer.CompanyName

Identifying Field

An Identifying Field is a field in an Entity Definition which is part of the set of Identifying Fields for that Entity Definition. The set of Identifying Fields is the set of fields which values combined uniquely identify an Entity Definition Instance at runtime. Also known as Primary Key.

Indirect Relationship

An Indirect Relationship is a relationship of type Many-to-Many and is based on two Many-to-One Normal Relationships.

Inheritance Hierarchy

An Inheritance Hierarchy is a connected graph of Entity Definitions which are all connected through Inheritance Relationships.

Inheritance Sub-hierarchy

An Inheritance Sub-hierarchy is a connected sub-graph of an Inheritance Hierarchy where each Entity Definition has the same Inheritance Hierarchy Type, so within an Inheritance Sub-hierarchy there's just one Inheritance Hierarchy Type known.

Inheritance Relationship

An Inheritance Relationship is a relationship between two Entity Definitions which specifies which Entity Definition is the super-type and which is the sub-type.

Mapping

A Mapping is the connection between a model element, like an Entity Definition and a Relational Model Data element, like a Table. A mapping implies that both sides represent the same thing and instances can freely be converted from an instance of the element one side of the mapping into an instance of the element on the other side.

Mapping Target

A Mapping Target is an element in the Relational Model Data storage which can be used as the other side of a Mapping for a model element, like an Entity. Example: Table.

Model View

A Model View is a view on a sub-set of the Entity Definitions plus their relationships and Inheritance Relationships known in the project.

Model-only Relationship

A model-only relationship is a relationship marked as such which doesn't require a backing Foreign Key constraint in the relational model data. 

A Navigator is a field mapped onto one side of a Normal Relationship or Indirect Relationship. A Navigator N mapped on side S1 of relationship R represents S1 in the other side of R, S2. Example: R is Customer 1:n Order. S1 is Customer, S2 is Order. A navigator N can now be mapped onto R.S1 so it represents S1 in S2, Order: Order.Customer. Another navigator can be mapped onto R, Orders which represents S2, Order, in S1. A Navigator provides a way to navigate from the containing entity to the entity on the other side of the relationship the navigator is mapped on.

Normal Relationship

A Normal Relationship is a relationship of type Many-to-One, One-To-One or One-to-Many

Relational Model Data Storage

A Relational Model Data Storage is a storage container which contains for one particular database type (e.g. Oracle, SQL Server) all Relational Model Data known in the project, e.g. Catalogs, Schemas and Tables.

Root Derived Element

A derived element that's a direct element in a derived model is called a root derived element.

Run Queue

A Run Queue is a list of Tasks and Task Groups which form together the set of tasks to perform for a code generation process.

Stored Procedure Call

A Stored Procedure Call is a call definition to call the mapped Stored Procedure Definition in a particular Relational Model Data Storage.

System Type Converter

A special kind of type converter which is defined only for the designer to be used in the model, it doesn't actually do conversions, as it relies on the target framework's ability to do the actual type conversion (through built-in logic).

Table Valued Function Call

A Table Valued Function Call is a call definition to call the mapped Table Valued Function Definition in a particular Relational Model Data Storage.

Target Framework

A Target Framework is an Object Relational Mapper framework which is supported by the LLBLGen Pro designer and for which the designer can generate classes which represent the Entity Definitions and other elements of the model at runtime.

Target Per Entity Hierarchy inheritance hierarchy type

An inheritance (sub)hierarchy of type Target Per Entity Hierarchy states that every participating Entity Definition has to have a Discriminator Value for the specified Discriminator Field and all Entity Definitions in the (sub)hierarchy are mapped onto the same Mapping Target.

Target Per Entity inheritance hierarchy type

An inheritance (sub)hierarchy of type Target Per Entity states that each participating Entity Definition is mapped onto its own Mapping Target which defines only the fields defined in the (sub)type. The Mapping Target of the sub-type of an Inheritance Relationship contains as Identifying Fields foreign key fields to the Identifying Fields of the super-type of the Inheritance Relationship.

Task

A Task is a definition of a call to the Perform method of a Task Performer in a Run Queue.

Task Group

A Task Group is a group of Tasks in a Run Queue.

Task Performer

A Task Performer is a class which can execute a Task in a Run Queue during a code generation process

TemplateBinding

A TemplateBinding is a binding between a TemplateID and a Template file so a Task definition can be defined generically and at generation time the actual Template file is obtained through the active TemplateBinding for the particular TemplateID

Template

A Template is a file with specially crafted code which can be interpreted or compiled at generation time to produce textual output.

Type Converter

A Type Converter is a converter class, derived from System.ComponentModel.TypeConverter, which can convert a value from one .NET type to another and vice versa. Synonym: IUserType implementation (NHibernate). For NHibernate, the TypeConverter has to derive from the System.ComponentModel.TypeConverter to be able to show up in the designer and has to implement IUserType to be able to work at runtime inside NHibernate.

Type Conversion Definition

A Type Conversion Definition is a definition between two .NET types when to automatically assign a particular Type Converter to a field mapping.

Type Shortcut

A Type Shortcut is a short, textual representation of a .NET type and which is used to define the types of fields in a uniform, language agnostic way.

Typed List Definition

A Typed List Definition is a definition of a projection over a connected graph of related Entity Definitions. A Typed List Definition can be seen as a definition for a Select query.

Typed View Definition

A Typed View Definition is a definition of a read-only representation of the Entity Definition Instances in a Mapping Target.

Value Type Definition

A Value Type Definition is a definition similar to Abstract Entity Definition with the core difference that a Value Type Definition doesn't have an identity and instances of a Value Type Definition are always part of an Entity Definition instance. Value Type Definition Instances should be treated as read-only objects. Synonyms: Complex Type (Entity Framework), Component (NHibernate), Value Object (DDD)