Se si imposta la proprietà PrimaryKey di un DataTable su una o più colonne, viene automaticamente aggiunto uno UniqueConstraint su tali colonne. Supponiamo che dt e col1 siano, rispettivamente, un DataTable e un DataColumn che fa parte della collezione Columns di dt; eseguendo il seguente codice:
1 dt.PrimaryKey = new DataColumn[] { col1 };
2 UniqueConstraint unique = new UniqueConstraint(col1);
3 dt.Constraints.Add(unique);
Si ottiene una DataException alla riga 3, perché il constraint è già stato implicitamente aggiunto quando è stata impostata la chiave primaria della tabella (riga 1). Se, invece, si cambia l'ordine di esecuzione, spostando in fondo la prima istruzione:
1 UniqueConstraint unique = new UniqueConstraint(col1);
2 dt.Constraints.Add(unique);
3 dt.PrimaryKey = new DataColumn[] { col1 };
L'esecuzione avviene senza problemi.