Beispiel #1
0
 public override void Visit(DisableForeignKey dfkCommand)
 {
     _Query.Append(ALTER).Append(TABLE).Append(FormatAttribute(dfkCommand.Table)).Append(SPACE).Append(NOCHECK).Append(CONSTRAINT).Append(ALL);
 }
Beispiel #2
0
 public override void Visit(DisableForeignKey dfkCommand)
 {
 }
Beispiel #3
0
 public override void Visit(DisableForeignKey dfkCommand)
 {
     _Query.Append(SET).Append(FOREIGN_KEY_CHECKS_0);
 }
        public void DisableForeignKeys(string tableName)
        {

            if (_DisabledTableNames.Contains(tableName))
                return;

            _DisabledTableNames.Add(tableName);

            DisableForeignKey dfk = null;

            switch (_Dialect.GetDisableForeignKeyScope())
            {
                case DBDialect.ForeignKeyScope.None:
                    return;

                case DBDialect.ForeignKeyScope.DataBase:

                    if (_DisableDataBase)
                        return;

                    _DisableDataBase = true;

                    dfk = new DisableForeignKey(DBDialect.ForeignKeyScope.DataBase);
                    ExecuteCommand(dfk);
                    break;

                case DBDialect.ForeignKeyScope.Table:

                    dfk = new DisableForeignKey(DBDialect.ForeignKeyScope.Table);
                    dfk.Table = tableName;
                    ExecuteCommand(dfk);
                    break;

                case DBDialect.ForeignKeyScope.Constraint:

                    foreach (EntityMapping em in _Mapping.Entities)
                        foreach (ReferenceMapping rm in em.References)
                            for (int index = 0; index < rm.Rules.Count; index++)
                            {
                                RuleMapping rule = rm.Rules[index];
                                if (rule.Constraint != null && rule.Constraint != String.Empty && rule.ParentTable == tableName)
                                {
                                    dfk = new DisableForeignKey(DBDialect.ForeignKeyScope.Constraint);
                                    if ((index == 0 && rule.ParentField == rm.EntityParent.IdFields) || (index != 0 && rule.ParentField == rm.Rules[index - 1].ChildField))
                                    {
                                        dfk.Table = rule.ChildTable;
                                    }
                                    else
                                    {
                                        dfk.Table = rule.ParentTable;
                                    }

                                    dfk.Name = rule.Constraint;
                                    ExecuteCommand(dfk);
                                }
                            }
                    break;
            }
        }
Beispiel #5
0
 public override void Visit(DisableForeignKey dfkCommand)
 {
     _Query.Append(ALTER).Append(TABLE).Append(FormatTableAlias(dfkCommand.Table)).Append(SPACE).Append(DISABLE).Append(CONSTRAINT).Append(FormatTableAlias(dfkCommand.Name));
 }
Beispiel #6
0
 public abstract void Visit(DisableForeignKey dfkCommand);