Я пытаюсь в .NET EFCore следующие Code-First миграции через объекты ниже
Пользователь
[Table("Users")]
public class User
{
[Key]
public int Id { get; set; }
[Required]
[MaxLength(100)]
public string FirstName { get; set; }
[Required]
[MaxLength(100)]
public string LastName { get; set; }
[Required]
[MaxLength(250)]
public string Email { get; set; }
[Required]
[MinLength(8), MaxLength(16)]
public string Password { get; set; }
[Required]
[MinLength(6), MaxLength(15)]
public string Phone { get; set; }
public ICollection<Apartment> Apartments { get; set; }
public ICollection<Rating> Ratings { get; set; }
}
Квартира
[Table("Apartments")]
public class Apartment
{
[Key]
public int Id { get; set; }
[Required]
[MinLength(24), MaxLength(100)]
public string Title { get; set; }
[Required]
[MinLength(24), MaxLength(250)]
public string Address { get; set; }
[Required]
public int Price { get; set; }
[ForeignKey("User")]
public int UserId { get; set; }
public User User {get; set;}
public ICollection<Rating> Ratings { get; set; }
public ICollection<AptCateg> AptsCategs { get; set; }
}
Рейтинги
[Table("Ratings")]
public class Rating
{
[Key]
public int Id { get; set; }
public int Value { get; set; }
[ForeignKey("Apartment")]
public int ApartmentId { get; set; }
public Apartment Apartment { get; set; }
[ForeignKey("User")]
public int UserId { get; set; }
public User User { get; set; }
}
Я использую команды dotnet ef migrations add InitialDatabase
, но когда я пытаюсь использовать dotnet ef database update
, он выдает следующую ошибку в cmd, как в заголовке
«FK_Ratings_Users_UserId» в таблице «Рейтинги» может вызвать циклы или
несколько каскадных путей
Я попытался добавить, как в EFCore учебном пособии здесь Каскадное поведение modelBuilder, но оно не работает, потому что я получаю ту же ошибку. Я также попытался сделать ответ из здесь , но реализация для HasRequired
не работает, даже если попытаться установить EntityFrameworkCore.Tools
.
Я понимаю, что существует проблема с циркулярной штукой . По моей интуиции, программа не знает, что делать в случае удаления пользователя, если отбросить или нет его рейтинги и апартаменты или что-то в этом роде, и именно поэтому она действует так, но я не могу исправить проблема.
У меня вопрос, как я могу решить эту проблему, поскольку я не могу создать свою базу данных и, следовательно, я не могу продолжать работу над проектом.
Спасибо!