Оператор DELETE конфликтует с ограничением REFERENCE в динамических данных ASP.NET - PullRequest
8 голосов
/ 25 октября 2011

У меня есть две таблицы Application_User и Application_User_Access.Таблица Application_User_Access имеет ограничение внешнего ключа с таблицей Application_User.

Когда я удаляю запись в таблице Application_User, я получаю исключение «Оператор DELETE, конфликтующий с ограничением REFERENCE».

Это происходит в веб-приложении ASP.NET Dynamic Data Entities.Я хочу удалить все дочерние записи в этом случае и, наконец, удалить родительскую запись.Как это реализовать?

1 Ответ

12 голосов
/ 26 октября 2011

Вы можете реализовать каскадное удаление для таблицы Application_User_Access.Для этого вам нужно немного изменить схему БД.Конкретно удалите предыдущую ссылку из Application_User_Access в таблицу Application_User и добавьте новую:

--not sure about the column names though

ALTER TABLE Application_User_Access
ADD CONSTRAINT FK_Application_User_Access_Application_User
FOREIGN KEY (used_id)
REFERENCES Application_User(id)
ON DELETE CASCADE
GO

Обратите внимание, что ON DELETE CASCADE вещь.Это означает, что всякий раз, когда запись первичного ключа удаляется, запись внешнего ключа, ссылающаяся на нее, также удаляется.

...