Linq: удаление записи в таблице с использованием отношения первичного - внешнего ключа

У меня приложение Windows Phone с таблицей A и таблицей B имеет отношение первичного ключа. Мне нужно удалить запись из таблицы A. Как мне это сделать?

Таблица A содержит объекты типа Shape и имеет поле ShapeColor. В таблице B есть объекты типа ShapeColor.

Когда я пытаюсь удалить Shape из таблицы A, используя DeleteOnSubmit, а затем SubmitChanges выдает исключение

"{" Значение первичного ключа не может быть удалено, поскольку ссылки на это   ключ все еще существует. [Foreign constraint name name = ShapeColor_Shape] "}

2
nl ja de
Не могли бы вы показать код, который выполняет удаление? Что-то должно инициировать удаление родительской записи. Вы отслеживали испускаемый SQL? Является ли удаление tableA до или после tableB ?
добавлено автор Gert Arnold, источник

1 ответы

Вы можете использовать:

context.DeleteOnSubmit(EntityA.ReferenceToTableB)
context.DeleteOnSubmit(EntityA)

Сначала удалите связь, затем удалите объект и отправьте изменения в базу данных.

1
добавлено
Он звучал так, как shape2 был связан с shape1, и в этом случае вам придется удалить обе сущности или переназначить указатель shape2 на shape1 на что-то другое. В вашем сценарии вам нужно будет только удалить shape1, но ошибка вашего получения указывает на другое. У вас есть первичная ключевая ссылка на то, что нужно указывать на что-то еще, или внешний объект внешнего ключа нужно удалить ....
добавлено автор Brian Mains, источник
Я не уверен, что понимаю ответ. Если у меня есть Shape1 и Shape2 в таблице Shapes, ссылка на ColorRed в таблице ShapeColor. Я хочу удалить только Shape1 из таблицы Shapes и оставить Shape2 как есть.
добавлено автор user1744147, источник
Про Windows
Про Windows
941 участник(ов)

Microsoft Windows и всё, что с этим связано. Список интересных групп и каналов: https://github.com/goq/telegram-list

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot