Трудно понять, как работает каскадное удаление и как настроить отношения - PullRequest
1 голос
/ 14 октября 2019

Итак, у меня есть зависимый объект ArtItem с родительским классом Location, который является зависимым объектом Company, который является зависимым объектом Country. ArtItem также зависит от Artist, а Artist зависит от Country.

public class Country
    {
        [Required]
        public int Id { get; set; }
    }

public class Company
    {
        public Country Country { get; set; }
        [Required]
        public int CountryId { get; set; }
        [Required]
        public int Id { get; set; }
    }

public class Location
    {
        [Required]
        public int Id { get; set; }
        public Company Company { get; set; }
        public int CompanyId { get; set; }
        //public List<ArtItem> ArtItems { get; set; }
    }

    public class ArtItem
    {
        public Artist Artist { get; set; }
        public int ArtistId { get; set; }
        [Required]
        public int Id { get; set; }
        public Location Location { get; set; }
        [Required]
        public int LocationId { get; set; }
    }

    public class Artist
    {
        public Country Country { get; set; }
        [Required]
        public int CountryId { get; set; }
        [Required]
        public int Id { get; set; }
    }

Моя проблема заключается в том, что всякий раз, когда я пытаюсь выполнить update-database в powershell, я получаю сообщение об ошибке Introducing FOREIGN KEY constraint 'FK_ArtItems_Locations_LocationId' on table 'ArtItems' may cause cycles or multiple cascade paths..

Я пытался настроить отношения в своем классе DbContext, DbContext.

, но безрезультатно. Я просто не понимаю, как я должен настраивать отношения в EF Core или как работает modelBuilder. Я был бы очень признателен за объяснение того, как избежать этой ошибки и что на самом деле вызывает ее. Я думал, что для правильной генерации отношений EF Core будет достаточно иметь свойство навигации и определенный внешний ключ. Я попробовал онлайн-документацию для EF Core, но безрезультатно.

Помощь очень ценится.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...