Entity Framework Введение ограничения FOREIGN KEY может привести к возникновению циклов или множественных каскадных путей. Где цикл?

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

Я понимаю, что означает сообщение об ошибке (может быть, нет??), и я знаю, как отключить каскадное удаление для этого конкретного свойства.

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

Вот суть сгенерированного скрипта sql, который выдает ошибку


person Rodrigo Juarez    schedule 27.05.2017    source источник


Ответы (1)


Если я запущу ваш скрипт, я получу

Сообщение 1785, уровень 16, состояние 0, строка 472 Введение ограничения FOREIGN KEY «FK_dbo.WorkOrders_dbo.Customers_CustomerId» в таблице «WorkOrders» может вызвать циклы или несколько каскадных путей. Укажите ON DELETE NO ACTION или ON UPDATE NO ACTION или измените другие ограничения FOREIGN KEY. Сообщение 1750, уровень 16, состояние 1, строка 472 Не удалось создать ограничение или индекс. См. предыдущие ошибки.

Вызванный

    ALTER TABLE [dbo].[WorkOrders] ADD CONSTRAINT
       [FK_dbo.WorkOrders_dbo.Customers_CustomerId] FOREIGN KEY 
       ([CustomerId]) REFERENCES [dbo].[Customers] ([Id]) ON DELETE CASCADE

Я обычно отключаю каскадное удаление. Мне нравится знать, когда что-то удаляется.

Цикл может быть «Клиент», «Заказ на работу», «Тревога», «Клиент»,

person Phil    schedule 27.05.2017