Ошибка при миграции C# EntityFramework
Вот код всех моделей:
public class Client
{
public int Id { get; set; }
public string Username { get; set; } = string.Empty;
public string Password { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public string Surname { get; set; } = string.Empty;
public string PhoneNumber { get; set; } = string.Empty;
public List<ClientSeasonTicket> ClientSeasonTickets { get; set; }
public List<ClientTraining> ClientTrainings { get; set; }
}
public class ClientSeasonTicket
{
public int Id { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public int VisitsNumber { get; set; }
public SeasonTicket SeasonTicket { get; set; }
public int SeasonTicketId { get; set; }
public Client Client { get; set; }
public int ClientId { get; set; }
public Coach Coach { get; set; }
public int? CoachId { get; set; }
public Section Section { get; set; }
public int SectionId { get; set; }
public Gym Gym { get; set; }
public int GymId { get; set; }
public Group Group { get; set; }
public int? GroupId { get; set; }
public List<ClientTraining> ClientTrainings { get; set; }
}
public class ClientTraining
{
public int Id { get; set; }
public Training Training { get; set; }
public int TrainingId { get; set; }
public Client Client { get; set; }
public int ClientId { get; set; }
public ClientSeasonTicket ClientSeasonTicket { get; set; }
public int ClientSeasonTicketId { get; set; }
public TrainingVisiting Visiting { get; set; } = TrainingVisiting.NotAttend;
}
public class Coach
{
public int Id { get; set; }
public string Username { get; set; } = string.Empty;
public string Password { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public string Surname { get; set; } = string.Empty;
public int PassportSeries { get; set; }
public int PassportNumber { get; set; }
public string PhoneNumber { get; set; } = string.Empty;
public Section Section { get; set; }
public int SectionId { get; set; }
public List<ClientSeasonTicket> ClientSeasonTickets { get; set; }
public List<Group> Groups { get; set; }
public List<Training> Trainings { get; set; }
public List<CoachContact> CoachContacts { get; set; }
}
public class CoachContact
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public string Link { get; set; } = string.Empty;
public Coach Coach { get; set; }
public int CoachId { get; set; }
}
public class Group
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public Coach Coach { get; set; }
public int CoachId { get; set; }
public Section Section { get; set; }
public int SectionId { get; set; }
public List<Training> Trainings { get; set; }
public List<ClientSeasonTicket> ClientSeasonTickets { get; set; }
}
public class Gym
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public int Number { get; set; }
public double Area { get; set; }
public List<Section> Sections { get; set; }
public List<Training> Trainings { get; set; }
public List<ClientSeasonTicket> ClientSeasonTickets { get; set; }
}
public class SeasonTicket
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public SeasonTicketType Type { get; set; } = SeasonTicketType.OneTime;
public int? AvailableVisits { get; set; }
public int Price { get; set; }
public List<ClientSeasonTicket> ClientSeasonTickets { get; set; }
}
public class Section
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public List<Gym> Gyms { get; set; }
public List<Coach> Coaches { get; set; }
public List<ClientSeasonTicket> ClientSeasonTickets { get; set; }
public List<Group> Groups { get; set; }
public List<Training> Trainings { get; set; }
}
public class Training
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public DateTime Date { get; set; }
public DateTime StartTime { get; set; }
public DateTime Duration { get; set; }
public string? Notes { get; set; }
public Gym Gym { get; set; }
public int GymId { get; set; }
public Coach Coach { get; set; }
public int? CoachId { get; set; }
public Section Section { get; set; }
public int SectionId { get; set; }
public Group Group { get; set; }
public int? GroupId { get; set; }
public List<ClientTraining> ClientTrainings { get; set; }
}
Я подозреваю что это из за того, что в Groups есть внешний ключ из таблицы Sections, и так же есть внешний ключ из таблицы Coaches, которая в свою очередь так же имеет связь с таблицей Sections. А затем еще и группа связана с таблицей ClientSeasonTickets, которая так же связана с Coaches и с Sections. Может кто-нибудь объяснить в чем именно причина, чтобы я понял свою ошибку. И так же подскажите, как исправить эту пожалуйста. EntityFramework последней версии использую, СУБД - MsSQL.
Источник: Stack Overflow на русском