public static CreateTable ForeignKey(this CreateTable @this, IEnumerable <string> columnNames, string references, IEnumerable <string> referencesColumnNames = null, ForeignKeyTriggers onDelete = default(ForeignKeyTriggers), ForeignKeyTriggers onUpdate = default(ForeignKeyTriggers), Deferrable deferrable = default(Deferrable) ) { if (referencesColumnNames == null) { referencesColumnNames = columnNames; } @this.TableConstraints.Add(new ForeignKeyConstraint() { ColumnNames = columnNames, ReferenceColumnNames = referencesColumnNames, OnDelete = onDelete, OnUpdate = onUpdate, Deferrable = deferrable, }); return(@this); }
public string ConvertToString(Deferrable deferrable) { switch (deferrable) { case Deferrable.Deferrable: return("DEFERRABLE "); case Deferrable.InitiallyDeferred: return("INITIALLY DEFERRED "); case Deferrable.InitiallyImmediate: return("INITIALLY IMMEDIATE "); case Deferrable.NotDeferrable: return("NOT DEFERRABLE "); case Deferrable.Default: return(null); default: return(null); } }