Entity Framework Core 7, один ко многим вызывает множественные каскадные пути, никогда не было проблем в более старой версии. Что я сейчас делаю не так?

Я переписываю старое веб-приложение .NET Core/EF Core 2 в .NET/EF Core 7.

У меня есть следующие два объекта, которые, насколько я помню, отлично работали в старом приложении, но теперь я получаю сообщение об ошибке.

Microsoft.Data.SqlClient.SqlException (0x80131904): введение ограничения FOREIGN KEY «FK_ReleaseDates_Sections_SectionID» в таблице «ReleaseDates» может вызвать циклы или несколько каскадных путей. Укажите ON DELETE NO ACTION или ON UPDATE NO ACTION или измените другие ограничения FOREIGN KEY.

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

      public class Section
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }

    public string Title { get; set; }

    [Column(TypeName = "varchar(15)")]
    public string Abbreviation { get; set; }

    public int TypeID { get; set; }
    public int? LogoFileID { get; set; }
    public string Synopsis { get; set; }
    public ICollection<ReleaseDate> ReleaseDates { get; set; }

    [ForeignKey("LogoFileID")]
    public SiteFile LogoFile { get; set; }

    [ForeignKey("TypeID")]
    public SectionType Type { get; set; }
}

public class SectionType
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }

    public string Name { get; set; }
}

public class ReleaseDate
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }

    public string Name { get; set; }
    public int VersionNumber { get; set; }
    public int TypeID { get; set; }
    public DateTime? Released { get; set; }
    public string Platform { get; set; }
    public string Region { get; set; }
    public string Note { get; set; }
    public int SectionID { get; set; }

    [ForeignKey("SectionID")]
    public Section Section { get; set; }

    [ForeignKey("TypeID")]
    public SectionType Type { get; set; }
}

Должен ли я исправлять это с помощью FluentAPI?Cascadeкоманду или я что-то напортачил в сущностях, которые я должен делать?

0 ответов

Другие вопросы по тегам