У меня есть простая таблица (давайте назовите ее Table1), которая имеет поле NVARCHAR в качестве PK. Таблица 1 не имеет отношения к каким-либо другим таблицам.LinqToSQL: невозможно обновить PrimaryKey?
Когда я обновляю столбец P1 таблицы 1, используя LinqToSQL, он терпит неудачу. Если я обновляю другой столбец, он будет успешным.
Я могу удалить эту строку и вставить новую в таблицу1, но я не хочу. Существует таблица транзакций, в которой столбец PK таблицы 1 является столбцом.
Когда PK таблицы 1 изменен, я не хочу эффекта в таблице транзакций. Но когда строка из Таблицы 1 удалена, я хочу, чтобы строки транзакций были удалены. Каскадирование выполняется через Trigger.
Поскольку между этими двумя таблицами нет связи, если я обновляю столбец PK таблицы 1 с использованием обычного SQL, он работает и не будет влиять на таблицу транзакций, как ожидалось. Когда я удаляю строку, триггер удаляет строки из таблицы транзакций.
По этой причине я не могу удалить, а затем добавить новую строку в таблицу1. Итак, что можно сделать, чтобы успешно обновить PrimaryKey таблицы1?
Обновление первичных ключей - это запах кода в моей книге. –
Первичные ключи на колонках 'varchar' или' nvarchar' - это дизайнерский запах в моей ... – Aaronaught
Да, я знаю, что его не рекомендуется иметь NVARCHAR .. и я изменил дизайн. Но я хочу знать, почему невозможно обновить PK – Zuhaib