невозможно удалить круговые зависимые объекты в Entity Framework - PullRequest
0 голосов
/ 08 июня 2018

У меня две таблицы имеют круговую ссылку друг на друга enter image description here (вы можете увидеть FK и PK в изображении) (В другой таблице защиты, у меня есть столбец из документа, и эта запись вдокумент связан с таблицей otherprotectionItem и внешним ключом, первое отношение при удалении NO NO, а при удалении второе - CASCADE) У меня возникает эта проблема, когда я хочу удалить строку в таблице otherprotectionItem.

Ошибка:

Невозможно определить действительный порядок для зависимых операций.Зависимости могут существовать из-за ограничений внешнего ключа, требований модели или сгенерированных в хранилище значений.

1 Ответ

0 голосов
/ 08 июня 2018

Просто хочу отметить, у меня есть это решение.но я предпочитаю иметь лучше.В противном случае это ответ.Я удалю документы вручную, сохраню изменения в БД.а затем удалите запись таблицы OtherprotectionItem

Data.Util.DocumentFinder.FindRecursive(item)
                        .ToList()
                        .ForEach(d => db.Entry(d).State = System.Data.Entity.EntityState.Deleted);
                    db.SaveChanges();

 db.OtherProtectionItems.Remove(item);
                    db.SaveChanges();

Примечание: этот FindRecursive - это функция, которую я создаю, она выполняет итерацию всех документов и находит все документы, связанные с этой записью OtherprotectionItem

...