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);
        }
Exemple #2
0
        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);
            }
        }