示例#1
0
 public ICreateConstraints AddForeignKeyOn(string columnNames, string parentTable, string parentColumns,
                                           ForeignKeyRelationCascade onUpdate =
                                           ForeignKeyRelationCascade.NoAction,
                                           ForeignKeyRelationCascade onDelete =
                                           ForeignKeyRelationCascade.NoAction, string keyName = null)
 {
     _current = Schema.AddForeignKey(columnNames, parentTable, parentColumns, onUpdate, onDelete, keyName);
     return(this);
 }
示例#2
0
 public IConfigureColumns IsForeignKeyFrom(string parentTable, string parentColumns,
                                           ForeignKeyRelationCascade onUpdate =
                                               ForeignKeyRelationCascade.NoAction,
                                           ForeignKeyRelationCascade onDelete =
                                               ForeignKeyRelationCascade.NoAction, string keyName = null)
 {
     _table.Constraints.AddForeignKey(_currentColumn.Name, parentTable, parentColumns, onUpdate, onDelete,
                                      keyName);
     return this;
 }
示例#3
0
 public IConfigureColumns IsForeignKeyFrom(string parentTable, string parentColumns,
                                           ForeignKeyRelationCascade onUpdate =
                                           ForeignKeyRelationCascade.NoAction,
                                           ForeignKeyRelationCascade onDelete =
                                           ForeignKeyRelationCascade.NoAction, string keyName = null)
 {
     _table.Constraints.AddForeignKey(_currentColumn.Name, parentTable, parentColumns, onUpdate, onDelete,
                                      keyName);
     return(this);
 }
示例#4
0
 public static string ToString(ForeignKeyRelationCascade relation)
 {
     switch (relation)
     {
         case ForeignKeyRelationCascade.Cascade:
             return "CASCADE";
         case ForeignKeyRelationCascade.Restrict:
             return relation.ToString();
         case ForeignKeyRelationCascade.SetDefault:
             return "SET DEFAULT";
         case ForeignKeyRelationCascade.SetNull:
             return "SET NULL";
         default:
             return "NO ACTION";
     }
 }
示例#5
0
        public static string ToString(ForeignKeyRelationCascade relation)
        {
            switch (relation)
            {
            case ForeignKeyRelationCascade.Cascade:
                return("CASCADE");

            case ForeignKeyRelationCascade.Restrict:
                return(relation.ToString());

            case ForeignKeyRelationCascade.SetDefault:
                return("SET DEFAULT");

            case ForeignKeyRelationCascade.SetNull:
                return("SET NULL");

            default:
                return("NO ACTION");
            }
        }
示例#6
0
 public ConstraintDefinition AddForeignKey(string columnNames, string parentTable, string parentColumns,
                                           ForeignKeyRelationCascade onUpdate =
                                               ForeignKeyRelationCascade.NoAction,
                                           ForeignKeyRelationCascade onDelete =
                                               ForeignKeyRelationCascade.NoAction, string keyName = null)
 {
     columnNames.MustNotBeEmpty();
     parentTable.MustNotBeEmpty();
     parentColumns.MustNotBeEmpty();
     var fk = new ForeignKeyConstraint
         {
             Columns = columnNames,
             ParentTable = parentTable,
             Name = keyName ?? GenerateForeignKeyName(columnNames, parentTable, parentColumns),
             ParentColumn = parentColumns,
             OnUpdate = onUpdate,
             OnDelete = onDelete
         };
     ForeignKeys.Add(fk);
     return fk;
 }
示例#7
0
        public ConstraintDefinition AddForeignKey(string columnNames, string parentTable, string parentColumns,
                                                  ForeignKeyRelationCascade onUpdate =
                                                  ForeignKeyRelationCascade.NoAction,
                                                  ForeignKeyRelationCascade onDelete =
                                                  ForeignKeyRelationCascade.NoAction, string keyName = null)
        {
            columnNames.MustNotBeEmpty();
            parentTable.MustNotBeEmpty();
            parentColumns.MustNotBeEmpty();
            var fk = new ForeignKeyConstraint
            {
                Columns      = columnNames,
                ParentTable  = parentTable,
                Name         = keyName ?? GenerateForeignKeyName(columnNames, parentTable, parentColumns),
                ParentColumn = parentColumns,
                OnUpdate     = onUpdate,
                OnDelete     = onDelete
            };

            ForeignKeys.Add(fk);
            return(fk);
        }
示例#8
0
 public IConfigureForeignKeys <T, TParent> OnDelete(ForeignKeyRelationCascade action)
 {
     _data.OnDelete = action;
     return(this);
 }