Каскадное удаление данных из той же таблицы EF (Code first)

Есть таблица

public class Category : BaseEntity, IAggregateRoot
{
    public string Name { get; set; }
    public int Priority { get; set; }
    public virtual Category Parent { get; set; }
    public virtual IEnumerable<Category> Children { get; set; }      
}

Необходимо что бы при удалении 1 Category так же удалились все Children именно в БД. Реализую через каскадное удаление

builder.Entity<Category>()
       .HasMany(c => c.Children)
       .WithOne(p => p.Parent)
       .OnDelete(DeleteBehavior.Cascade);

Но при выполнении миграции выпадает ошибка:

Введение ограничения внешнего ключа (FOREIGN KEY) "FK_Categories_Categories_ParentId" для таблицы "Categories" может привести к появлению циклов или множественных каскадных путей. Укажите ON DELETE NO ACTION или ON UPDATE NO ACTION либо измените другие ограничения внешнего ключа (FOREIGN KEY). Не удалось создать ограничение или индекс. См. описание предыдущих ошибок.

Что нужно исправить?


Ответы (0 шт):