Foundgine

HomeDocumentationFoundationMetadata

Metadata

Contents


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.


Dependency Direction

Foundation sits at the bottom of the dependency graph.

Foundation
      ▲
      │
Runtime
      ▲
      │
SQL
      ▲
      │
Generated Code
      ▲
      │
GraphQL
gRPC
WebApi

Foundation references no other Foundgine project.


Immutability

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