Нужна помощь с ADO.NET Entity Framework UpdateException - PullRequest
0 голосов
/ 27 марта 2009

В моей базе данных есть таблица контактов и таблица телефона, в таблице телефона есть столбец «ContactId» с ключом, который связывает телефон с контактом.

В параметрах ключа на сервере я установил опцию удаления «Каскад».

Теперь, когда я пытаюсь удалить контакт, используя контекст:

Dim contact As Contact 'The contact I want to delete.
Dim context As New Entities 'The ObjectContext.
context.DeleteObject(contact)
context.SaveChanges()

Вышеприведенный оператор генерирует исключение UpdateException, сообщающее мне, что у Контакта все еще есть записи Телефон, чей столбец ContactId имеет свой идентификатор.

Теперь я знаю, что могу сделать это вручную и удалить сначала все связанные телефоны, затем удалить контакт, но я ищу более эффективный способ, я хочу, чтобы все это делалось автоматически.

Любые предложения и практики приветствуются.

Спасибо.

1 Ответ

0 голосов
/ 27 марта 2009

Вам не нужно сначала удалять записи телефона, но вам нужно их загрузить. После загрузки записей Entity Framework определит, что делать.

Кроме того, в этом сообщении блога есть метод удаления объектов в структуре сущностей без предварительного извлечения их . Обсуждается проблема удаления объектов со ссылками на связанные объекты. Это может помочь вам разобраться в том, что происходит под капотом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...