/// <inheritdoc/> public override string Translate(SqlCompilerContext context, Constraint constraint, ConstraintSection section) { switch (section) { case ConstraintSection.Exit: ForeignKey fk = constraint as ForeignKey; if (fk != null) { if (fk.OnUpdate == ReferentialAction.Cascade) { return(") ON UPDATE CASCADE"); } if (fk.OnDelete == ReferentialAction.Cascade) { return(") ON DELETE CASCADE"); } } return(")"); default: return(base.Translate(context, constraint, section)); } }
/// <inheritdoc/> public override string Translate(SqlCompilerContext context, Constraint constraint, ConstraintSection section) { switch (section) { case ConstraintSection.Exit: ForeignKey fk = constraint as ForeignKey; StringBuilder sb = new StringBuilder(); sb.Append(")"); if (fk != null) { if (fk.OnUpdate != ReferentialAction.NoAction) { sb.Append(" ON UPDATE " + Translate(fk.OnUpdate)); } if (fk.OnDelete != ReferentialAction.NoAction) { sb.Append(" ON DELETE " + Translate(fk.OnDelete)); } } return(sb.ToString()); } return(base.Translate(context, constraint, section)); }
public override string Translate(SqlCompilerContext context, Constraint constraint, ConstraintSection section) { switch (section) { case ConstraintSection.Unique: if (Driver.ServerInfo.UniqueConstraint.Features.Supports(UniqueConstraintFeatures.Clustered)) { return(((UniqueConstraint)constraint).IsClustered ? "UNIQUE CLUSTERED (" : "UNIQUE NONCLUSTERED ("); } return("UNIQUE ("); case ConstraintSection.PrimaryKey: if (Driver.ServerInfo.PrimaryKey.Features.Supports(PrimaryKeyConstraintFeatures.Clustered)) { return(((PrimaryKey)constraint).IsClustered ? "PRIMARY KEY CLUSTERED (" : "PRIMARY KEY NONCLUSTERED ("); } return("PRIMARY KEY ("); case ConstraintSection.Exit: ForeignKey fk = constraint as ForeignKey; if (fk != null) { StringBuilder builder = new StringBuilder(); builder.Append(")"); if (fk.OnUpdate != ReferentialAction.Restrict && fk.OnUpdate != ReferentialAction.NoAction) { builder.Append(" ON UPDATE " + Translate(fk.OnUpdate)); } if (fk.OnDelete != ReferentialAction.Restrict && fk.OnDelete != ReferentialAction.NoAction) { builder.Append(" ON DELETE " + Translate(fk.OnDelete)); } return(builder.ToString()); } return(")"); default: return(base.Translate(context, constraint, section)); } }