2010-10-18 2 views
1

У меня есть объект самообучения (от 0 до *). Когда я попытался удалить его, получил сообщение об ошибке.Проблема LINQ to Entity. Объект саморегуляции

Структура данных:

servise1
--service 1.1
--service 1.2
--- обслуживание 1.2.1
--- обслуживание 1.2.2
--- сервис 1.2.3
--service 1.3
--service 1,4
услуги 2

и т. Д.

Мне просто нужно удалить одну из услуг со всеми подсервисами (каскадом).

Пожалуйста, помогите!)

+1

У вас "есть ошибка"? Отправьте сообщение об ошибке. Мы не экстрасенсы. –

+1

Легкий способ обойти это, чтобы добавить «на каскад удаления» на внешнем внешнем ключе. –

+0

получил эту ошибку при попытке добавить каскад: FK_categorycategory 'в категории «категории» может вызывать циклы или несколько каскадных путей. Укажите ON DELETE NO ACTION или ON UPDATE NO ACTION или измените другие ограничения FOREIGN KEY. – FetalDump

ответ

0

Если вы добавили каскад удаления delete в определение таблицы sql, попробуйте изменить его для удаления без действия, затем перейдите к своей модели сущности, выберите ассоциацию в конструкторе и установите каскад удаления в окне свойств ,

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

+0

Просто хотел упомянуть: установка каскадного удаления в модели сущности не касается базы данных, будут удалены только объекты в памяти, поэтому модель будет «синхронизироваться» с БД, если это выполнило каскад. Но в следующий раз, когда вы загрузите таблицу, удаленные ссылки снова вернутся. –