Class SqlForeignKeyBuilder
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
SqlIndexBuilderSQL index that this foreign key originates from.
referencedIndex
SqlIndexBuilderSQL index referenced by this foreign key.
name
stringObject's name.
Properties
OnDeleteBehavior
Specifies this foreign key's on delete behavior.
public ReferenceBehavior OnDeleteBehavior { get; }
Property Value
OnUpdateBehavior
Specifies this foreign key's on update behavior.
public ReferenceBehavior OnUpdateBehavior { get; }
Property Value
OriginIndex
SQL index that this foreign key originates from.
public SqlIndexBuilder OriginIndex { get; }
Property Value
ReferencedIndex
SQL index referenced by this foreign key.
public SqlIndexBuilder ReferencedIndex { get; }
Property Value
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
ReferenceBehaviorOriginal value.
AfterOnUpdateBehaviorChange(ReferenceBehavior)
Callback invoked just after OnUpdateBehavior change has been processed.
protected virtual void AfterOnUpdateBehaviorChange(ReferenceBehavior originalValue)
Parameters
originalValue
ReferenceBehaviorOriginal value.
BeforeOnDeleteBehaviorChange(ReferenceBehavior)
Callback invoked just before OnDeleteBehavior change is processed.
protected virtual SqlPropertyChange<ReferenceBehavior> BeforeOnDeleteBehaviorChange(ReferenceBehavior newValue)
Parameters
newValue
ReferenceBehaviorValue 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
ReferenceBehaviorValue 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
stringName 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
ReferenceBehaviorValue 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
ReferenceBehaviorValue 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.