Modificare un comando generato da un Commad Builder

Il CommandBuilder è un oggetto che se fosse più flessibile avrebbe sicuramente attratto maggiormente gli sviluppatori, una sua pessima abitudine è quella di invalidare le modifiche fatte ai comandi da lui generati.
Per maggior info si veda il seguente:
PRB: CommandBuilder Changes Modified Commands Back to Original

Un modo per aggirare il problema può essere quello di clonare il comando generato ed aggiungere la modifica necessaria.

Esempio:

da.InsertCommand = DirectCast(DirectCast(da.InsertCommand, System.ICloneable).Clone, _
                                                                               System.Data.IDbCommand)
da.InsertCommand.CommandText &= “; SELECT SCOPE_IDENTITY() AS ID”
da.InsertCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord