У пользователей или их команды, если быть точным, есть любимая команда, которая действует как значок игрока, она просто отображает Liverool или что-то еще, что они выбрали.
Миграция проходит нормально, но я получаю ошибки когда я использую
Код: Выделить всё
dotnet ef database update
Ограничение FOREIGN KEY 'FK_PlayerTeams_Teams_TeamId' в таблице 'PlayerTeams' может вызывать циклы или несколько каскадных путей. Укажите ON DELETE NO ACTION или ON UPDATE NO ACTION или измените другие ограничения FOREIGN KEY.
Введение ограничения FOREIGN KEY «FK_Team_Coach_CoachId» в таблице «Team» может вызвать циклы или несколько каскадных путей. Укажите ON DELETE NO ACTION или ON UPDATE NO ACTION или измените другие ограничения FOREIGN KEY.
Я пытался создать таблицу слияния, например TeamCoach, но это привело к новой ошибке каскадирования. Сопоставление FluentApi ничего не изменило, я заставил ChatGpt переписать эту штуку сто раз, и он сказал: «Я знаю, что сейчас происходит, вот попробуй это», и это снова с треском провалилось.
Вот классы:
Код: Выделить всё
public class Club
{
public int Id { get; set; }
public Coach Coach { get; set; } = null!;
public List
Players { get; set; } = new();
public List FavoritedBy { get; set; } = new();
}
Код: Выделить всё
public class Coach
{
public int Id { get; set; }
public int ClubId { get; set; }
public Club Club { get; set; } = null!;
public List CoachOfTeams { get; set; } = new();
}
Код: Выделить всё
public class Player
{
public int Id { get; set; }
public int ClubId { get; set; }
public Club Club { get; set; } = null!;
public List Teams { get; set; } = new();
}
Код: Выделить всё
public class PlayerTeam
{
public int Id { get; set; }
public int PlayerId { get; set; }
public Player Player { get; set; } = null!;
public int TeamId { get; set; }
public Team Team { get; set; } = null!;
}
Код: Выделить всё
public class Team
{
public int Id { get; set; }
public string Name { get; set; } = null!;
public int FavoriteClubId { get; set; }
public Club FavoriteClub { get; set; } = null!;
public int CoachId { get; set; }
public Coach Coach { get; set; } = null!;
public List Players { get; set; } = new();
}
Код: Выделить всё
public class AppDbContext : DbContext
{
public DbSet Clubs => Set();
public DbSet Coaches => Set();
public DbSet Players => Set();
public DbSet Teams => Set();
public DbSet PlayerTeams => Set();
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlServer(
"Server=;Database=;Trusted_Connection=true;TrustServerCertificate=true");
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... les-or-mul
Мобильная версия