Я обнаружил эту ошибку при работе с DataTable.Я добавил столбец первичного ключа в DataTable, затем добавил одну строку в эту таблицу, удалил эту строку и добавил в таблицу строку с тем же ключом.Это работает.Когда я попытался вызвать RejectChanges()
, я получил ConstraintException
, сказав, что значение уже присутствует.Вот пример:
var dataTable = new DataTable();
var column = new DataColumn("ID", typeof(decimal));
dataTable.Columns.Add(column);
dataTable.PrimaryKey = new [] {column };
decimal id = 1;
var oldRow = dataTable.NewRow();
oldRow[column] = id;
dataTable.Rows.Add(oldRow);
dataTable.AcceptChanges();
oldRow.Delete();
var newRow = dataTable.NewRow();
newRow[column] = id;
dataTable.Rows.Add(newRow);
dataTable.RejectChanges(); // This is where it crashes
Я думаю, что поскольку строка удалена, исключение не должно создаваться (ограничение не нарушается, поскольку строка находится в удаленном состоянии).Что я могу с этим поделать?Любая помощь приветствуется.