Home → Documentation → Foundation → Metadata
Metadata represents immutable facts about the application’s structure.
Typical metadata objects include:
EntityMetadata
ModelMetadata
ColumnMetadata
JoinMetadata
GraphMetadata
FieldMetadata
MutationColumn
ColumnReference
Metadata is generated during compilation and consumed during execution.
Foundation sits at the bottom of the dependency graph.
Foundation
▲
│
Runtime
▲
│
SQL
▲
│
Generated Code
▲
│
GraphQL
gRPC
WebApi
Foundation references no other Foundgine project.
Every metadata object should be immutable.
Example:
public sealed class EntityMetadata
{
public ushort Id { get; }
public string Name { get; }
public ImmutableArray<ColumnMetadata> Columns { get; }
}
Immutable objects:
| ← Previous: Foundation | Next: Contracts → |