IndexDefinition

Classes > Migration > IndexDefinition

Index definition (unique or non-unique). Supports both column-based indexes (Columns) and expression-based indexes (Expressions). When Expressions is non-empty, it takes precedence over Columns.

public sealed record IndexDefinition : IEquatable<IndexDefinition>

Properties

Name

public string Name { get; init; }

Index name.

Columns

public IReadOnlyList<string> Columns { get; init; }

Columns in the index (quoted as identifiers).

Expressions

public IReadOnlyList<string> Expressions { get; init; }

LQL/SQL expressions for expression-based indexes (e.g., "lower(name)"). When non-empty, these are used instead of Columns and are emitted verbatim.

IsUnique

public bool IsUnique { get; init; }

Whether the index enforces uniqueness.

Filter

public string? Filter { get; init; }

Partial index WHERE clause filter.