Prevenir DataSet coluna atualização PK
-
05-07-2019 - |
Pergunta
Eu tenho um dataset tipado, e onde eu chamo TableAdapter.Update(DataRow)
, o SQL executado inclui uma atualização da coluna de chave primária do banco de dados.
Infelizmente, quando esse código é executado em um banco de dados replicado, a coluna PK tem o conjunto de propriedades rowguid
, e eu recebo o seguinte erro:
System.Data.SqlClient.SqlException: Atualizando colunas com a propriedade ROWGUIDCOL não é permitido. A transação terminou no gatilho. O lote foi abortada. em System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors (RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo [] batchCommands, Int32 commandCount) em System.Data.Common.DbDataA ...
Como posso evitar que o TableAdapter de atualizar esta coluna (o valor é o mesmo)?
Solução
Você pode editar manualmente o SQL criado para o comando de atualização no designer DataSet
Basta clicar no adaptador e encontrar o UpdateCommand
. Existe uma razão que você está atualizando a chave primária? Se não (e você não deve ser, se possível), então você deve remover a partir do comando.
Outras dicas
Se a sua coluna está realmente marcado como a chave primária no DataSet digitado o auto gerado declaração atualizada não deve estar tentando atualizá-lo. Eu olhava para o designer e verifique que na verdade é a chave primária.