Skip to main content

Domain Language

The jargon we use to talk about core concepts in object-relational mapping.

TermDefinition
AssociationA relationship between two entities. E.g. customer.orders or customer.address.
Change TrackingKeeping track of modifications to loaded entities, so that we can generate SQL DML to persist the changes.
Compiled QueryAllowing user-code to reference a query executor component to remove any query preparation overhead.
Eager LoadLoading an entity's related data together with the entity itself.
Expression TreeTurning code into a tree data structure at runtime, instead of executing it.
Fix-upThe process of ensuring loaded, related entities reference each other properly.
Identity MapCaching loaded entities in memory, so that we only have a single instance of each entity loaded within a unit of work. (Sometimes called the Level 1 cache)
IgnoredAn entity or property that is explicitly excluded from the metadata model.
Lazy LoadLoading an entity's related data only when and if it is needed.
LINQLanguage Integrated Query. The pattern used in .NET that allows database queries to be translated to SQL, but written in C# code.
Metadata ModelThe configuration data that describes the model, and how it maps to the database.
ModelThe set of entity types, associations and value-types comprising the data and behavior of an application.
Query CompilationThe process of turning a logical query, expressed in API calls, into a physical, reusable execution plan.
Query OperatorA function that describes a specific query operation. e.g. map, where, limit etc.
Navigation PropertyA property on an entity type that references another entity type (either single or collection).
Persistent IgnorantWhen user-code does not directly depend on any ORM code.
Shadow PropertyA property that exists on an entity in the model, but does not exist on the corresponding Typescript class.
Streaming QueryWhen the results of a query are loaded as they are needed, usually via iteration.
Unit of WorkA logical set of operations against a model that will be flushed to the database in a single transaction.
Update PipelineThe components that determine how to turn in-memory logical model changes into physical SQL operations.