ColumnBuilder

Classes > Migration > ColumnBuilder

Builder for creating column definitions with type, nullability, defaults, and constraints.

public sealed class ColumnBuilder

Example

// UUID primary key with auto-generation
.Column("id", PortableTypes.Uuid, c => c.PrimaryKey().DefaultLql("gen_uuid()"))

// Required string with max length
.Column("name", PortableTypes.VarChar(100), c => c.NotNull())

// Auto-increment integer
.Column("sequence", PortableTypes.Int, c => c.Identity())

// Decimal with precision and check constraint
.Column("price", PortableTypes.Decimal(10, 2), c => c.NotNull().Check("price > 0"))

// DateTime with default to current timestamp
.Column("created_at", PortableTypes.DateTime, c => c.DefaultLql("now()"))

Methods

NotNull()

public ColumnBuilder NotNull()

Mark column as NOT NULL.

Returns: ColumnBuilder

Nullable()

public ColumnBuilder Nullable()

Mark column as nullable (default).

Returns: ColumnBuilder

Default(string)

public ColumnBuilder Default(string defaultValue)

Set default value expression (platform-specific SQL).

Parameters:

Name Type Description
defaultValue String

Returns: ColumnBuilder

DefaultLql(string)

public ColumnBuilder DefaultLql(string lqlExpression)

Set default value using LQL expression (platform-independent). The expression will be translated to platform-specific SQL by DDL generators. Common LQL functions: now(), gen_uuid(), lower(), upper(), coalesce().

Parameters:

Name Type Description
lqlExpression String

Returns: ColumnBuilder

Identity(long, long)

public ColumnBuilder Identity(long seed = 1, long increment = 1)

Mark as identity/auto-increment column.

Parameters:

Name Type Description
seed Int64
increment Int64

Returns: ColumnBuilder

PrimaryKey()

public ColumnBuilder PrimaryKey()

Mark as primary key (also sets NOT NULL).

Returns: ColumnBuilder

Computed(string, bool)

public ColumnBuilder Computed(string expression, bool persisted = false)

Set computed column expression.

Parameters:

Name Type Description
expression String
persisted Boolean

Returns: ColumnBuilder

Collation(string)

public ColumnBuilder Collation(string collation)

Set column collation.

Parameters:

Name Type Description
collation String

Returns: ColumnBuilder

Check(string)

public ColumnBuilder Check(string expression)

Add check constraint to column.

Parameters:

Name Type Description
expression String

Returns: ColumnBuilder

Comment(string)

public ColumnBuilder Comment(string comment)

Add comment to column.

Parameters:

Name Type Description
comment String

Returns: ColumnBuilder