public void SetForeignKeyConstraint(Database ForeignDB, ForeignKeyDeleteAction OnDelete, ForeignKeyNullifyDelegate NullifyFunc) { if (OnDelete == ForeignKeyDeleteAction.NULLIFY && NullifyFunc == null) { throw new ArgumentException( "A nullifying function must " + "be provided when ForeignKeyDeleteAction.NULLIFY is set."); } fdbp = ForeignDB; fkaction = OnDelete; nullifier = NullifyFunc; }
/// <summary> /// Specify the action taken when a referenced record in the foreign key /// database is deleted. /// </summary> /// <param name="ForeignDB">The foreign key database.</param> /// <param name="OnDelete"> /// The action taken when a reference record is deleted. /// </param> /// <param name="NullifyFunc"> /// When <paramref name="OnDelete"/> is /// <see cref="ForeignKeyDeleteAction.NULLIFY"/>, NullifyFunc is used to /// set the foreign key to null. /// </param> public void SetForeignKeyConstraint(Database ForeignDB, ForeignKeyDeleteAction OnDelete, ForeignKeyNullifyDelegate NullifyFunc) { if (OnDelete == ForeignKeyDeleteAction.NULLIFY && NullifyFunc == null) throw new ArgumentException( "A nullifying function must " + "be provided when ForeignKeyDeleteAction.NULLIFY is set."); fdbp = ForeignDB; fkaction = OnDelete; nullifier = NullifyFunc; }
/// <summary> /// Protected method to configure the DB. Only valid before DB->open. /// </summary> /// <param name="cfg">Configuration parameters.</param> protected void Config(SecondaryDatabaseConfig cfg) { base.Config(cfg); KeyGen = cfg.KeyGen; Nullifier = cfg.ForeignKeyNullfier; db.set_flags(cfg.flags); }