Table of Contents

Class SqlForeignKeyBuilder

Namespace
LfrlAnvil.Sql.Objects.Builders
Assembly
LfrlAnvil.Sql.Core.dll

Represents an SQL foreign key constraint builder.

public abstract class SqlForeignKeyBuilder : SqlConstraintBuilder, ISqlForeignKeyBuilder, ISqlConstraintBuilder, ISqlObjectBuilder
Inheritance
SqlForeignKeyBuilder
Implements
Derived
Inherited Members
Extension Methods

Constructors

SqlForeignKeyBuilder(SqlIndexBuilder, SqlIndexBuilder, string)

Creates a new SqlForeignKeyBuilder instance.

protected SqlForeignKeyBuilder(SqlIndexBuilder originIndex, SqlIndexBuilder referencedIndex, string name)

Parameters

originIndex SqlIndexBuilder

SQL index that this foreign key originates from.

referencedIndex SqlIndexBuilder

SQL index referenced by this foreign key.

name string

Object's name.

Properties

OnDeleteBehavior

Specifies this foreign key's on delete behavior.

public ReferenceBehavior OnDeleteBehavior { get; }

Property Value

ReferenceBehavior

OnUpdateBehavior

Specifies this foreign key's on update behavior.

public ReferenceBehavior OnUpdateBehavior { get; }

Property Value

ReferenceBehavior

OriginIndex

SQL index that this foreign key originates from.

public SqlIndexBuilder OriginIndex { get; }

Property Value

SqlIndexBuilder

ReferencedIndex

SQL index referenced by this foreign key.

public SqlIndexBuilder ReferencedIndex { get; }

Property Value

SqlIndexBuilder

Methods

AddIndexReferences()

Adds this foreign key to OriginIndex and ReferencedIndex reference sources. This foreign key may optionally be added as a reference source to table and schema of ReferencedIndex.

protected void AddIndexReferences()

AfterOnDeleteBehaviorChange(ReferenceBehavior)

Callback invoked just after OnDeleteBehavior change has been processed.

protected virtual void AfterOnDeleteBehaviorChange(ReferenceBehavior originalValue)

Parameters

originalValue ReferenceBehavior

Original value.

AfterOnUpdateBehaviorChange(ReferenceBehavior)

Callback invoked just after OnUpdateBehavior change has been processed.

protected virtual void AfterOnUpdateBehaviorChange(ReferenceBehavior originalValue)

Parameters

originalValue ReferenceBehavior

Original value.

BeforeOnDeleteBehaviorChange(ReferenceBehavior)

Callback invoked just before OnDeleteBehavior change is processed.

protected virtual SqlPropertyChange<ReferenceBehavior> BeforeOnDeleteBehaviorChange(ReferenceBehavior newValue)

Parameters

newValue ReferenceBehavior

Value to set.

Returns

SqlPropertyChange<ReferenceBehavior>

SqlPropertyChange<T> instance associated with OnDeleteBehavior change attempt.

Exceptions

SqlObjectBuilderException

When OnDeleteBehavior of this foreign key cannot be changed.

BeforeOnUpdateBehaviorChange(ReferenceBehavior)

Callback invoked just before OnUpdateBehavior change is processed.

protected virtual SqlPropertyChange<ReferenceBehavior> BeforeOnUpdateBehaviorChange(ReferenceBehavior newValue)

Parameters

newValue ReferenceBehavior

Value to set.

Returns

SqlPropertyChange<ReferenceBehavior>

SqlPropertyChange<T> instance associated with OnUpdateBehavior change attempt.

Exceptions

SqlObjectBuilderException

When OnUpdateBehavior of this foreign key cannot be changed.

BeforeRemove()

Callback invoked just before the removal is processed.

protected override void BeforeRemove()

Exceptions

SqlObjectBuilderException

When this object cannot be removed.

GetDefaultName()

Creates a default name for this constraint.

[Pure]
protected override sealed string GetDefaultName()

Returns

string

Default name for this constraint.

QuickRemoveCore()

Performs a quick removal of this object.

protected override void QuickRemoveCore()

Remarks

See QuickRemove(SqlObjectBuilder) for more information.

QuickRemoveReferencedIndexReferences()

Removes this foreign key from OriginIndex and ReferencedIndex reference sources. This is a version for the QuickRemoveCore() method.

protected void QuickRemoveReferencedIndexReferences()

RemoveIndexReferences()

Removes this foreign key from OriginIndex and ReferencedIndex reference sources.

protected void RemoveIndexReferences()

SetDefaultName()

Changes the name of this object to a default name.

public SqlForeignKeyBuilder SetDefaultName()

Returns

SqlForeignKeyBuilder

this.

Remarks

See ISqlDefaultObjectNameProvider for more information.

Exceptions

SqlObjectBuilderException

When name cannot be changed.

SetName(string)

Changes the name of this object.

public SqlForeignKeyBuilder SetName(string name)

Parameters

name string

Name to set.

Returns

SqlForeignKeyBuilder

this.

Exceptions

SqlObjectBuilderException

When name cannot be changed.

SetOnDeleteBehavior(ReferenceBehavior)

Changes OnDeleteBehavior value of this foreign key.

public SqlForeignKeyBuilder SetOnDeleteBehavior(ReferenceBehavior behavior)

Parameters

behavior ReferenceBehavior

Value to set.

Returns

SqlForeignKeyBuilder

this.

Exceptions

SqlObjectBuilderException

When behavior cannot be changed.

SetOnUpdateBehavior(ReferenceBehavior)

Changes OnUpdateBehavior value of this foreign key.

public SqlForeignKeyBuilder SetOnUpdateBehavior(ReferenceBehavior behavior)

Parameters

behavior ReferenceBehavior

Value to set.

Returns

SqlForeignKeyBuilder

this.

Exceptions

SqlObjectBuilderException

When behavior cannot be changed.

ThrowIfCannotUseSetNullReferenceBehavior()

Throws an exception when SetNull behavior cannot be used.

protected void ThrowIfCannotUseSetNullReferenceBehavior()

Remarks

All Columns of OriginIndex must be single columns with IsNullable equal to true.

Exceptions

SqlObjectBuilderException

When SetNull behavior cannot be used.