Настройка Entity Framework Core 2.x Табличное отношение с самим собой - PullRequest
0 голосов
/ 12 октября 2018

Попытка настроить отношение «один ко многим» с помощью EF Core 2.1.и Fluent Api

Это моя конфигурация

modelBuilder.Entity<ProductCategory>().Property(prop => prop.ParentCategoryId).HasDefaultValue(null);
modelBuilder.Entity<ProductCategory>()
     .HasOne(principal => principal.ParentCategory)
     .WithMany(dependent => dependent.ProductCategories)
     .HasForeignKey(fk => fk.ParentCategoryId)
     .IsRequired(false)
     .OnDelete(DeleteBehavior.SetNull);

А это модель

public class ProductCategory 
{
    public short Id { get; internal set; }
    public string Name { get; internal set; }
    public string Description { get; internal set; }

    public short? ParentCategoryId { get; internal set; }
    public ProductCategory ParentCategory { get; internal set; }

    public IEnumerable<Product> Products { get; internal set; }
    public IEnumerable<ProductCategory> ProductCategories { get; internal set; }
}

При запуске

Add-MigrationИмя

Я получаю это исключение

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

Что я делаю не так?Какое решение?

...