protected override DbCommand OnBuildCreateConstraintCommand(ICreateConstraint Query) { SqlCommand command; StringBuilder sql; sql = new StringBuilder(); sql.Append("ALTER TABLE "); sql.Append(OnFormatTableName(Query.Table)); sql.Append($" ADD CONSTRAINT [AK_{Query.Table}_{string.Join("_",Query.Columns.Select(item=>item.Name))}]"); switch (Query.Constraint) { case ColumnConstraints.PrimaryKey: sql.Append($" PRIMARY KEY ({string.Join(", ", Query.Columns.Select(item => OnFormatColumnName(item, false)))})"); break; case ColumnConstraints.Unique: sql.Append($" UNIQUE ({string.Join(", ", Query.Columns.Select(item => OnFormatColumnName(item,false)))})"); break; default: throw new NotImplementedException("Invalid constraint"); } command = new SqlCommand(sql.ToString()); return(command); }
protected abstract DbCommand OnBuildCreateConstraintCommand(ICreateConstraint Query);