public virtual string AddConstraint(DatabaseTable databaseTable, DatabaseConstraint constraint) { //we always use the named form. var constraintName = constraint.Name; if (string.IsNullOrEmpty(constraintName)) { throw new InvalidOperationException("Constraint must have a name"); } //primary, unique and foreign key constraints must have columns if (constraint.Columns.Count == 0 && constraint.ConstraintType != ConstraintType.Check) { throw new InvalidOperationException("Constraint has no columns"); } //use the standard constraint writer for the database var constraintWriter = _ddlFactory.ConstraintWriter(databaseTable); if (constraintWriter == null) { return(null); } constraintWriter.IncludeSchema = IncludeSchema; //cascade setting constraintWriter.EscapeNames = EscapeNames; return(constraintWriter.WriteConstraint(constraint)); }