Застрял в этом дольше, чем я хотел бы признать. У меня есть модель данных, которая содержит список объектов. В методе, в котором я добавляю объекты в список, это показывает, что данные хранятся, однако, как только я попытался получить данные из другого метода, его там больше нет. Изменения в других свойствах данных будут обновлены, поэтому я предполагаю, что существует проблема, при которой EF не регистрирует обновленные данные в списке.
Это модель данных, которую я пытаюсь обновить
public long Id { get; set; }
[Required(ErrorMessage ="Team Name is required")]
public string Name { get; set; }
[Required(ErrorMessage = "Team Location is required")]
public string Location { get; set; }
public List<Player> Players = new List<Player>();
И вот как я добавляю данные в свойство списка
team.Players.Add(player);
context.Entry(team).State = EntityState.Modified;
context.SaveChanges();
Я пробовал все остальное, что смог найти в Интернете, но ничего не получалось. Я новичок в EF, так что, надеюсь, это простая ошибка с моей стороны1017 *
Контекст базы данных:
public class TeamListContext : DbContext
{
public TeamListContext(DbContextOptions<TeamListContext> options) : base(options)
{
}
public DbSet<Team> Teams { get; set; }
public DbSet<Player> Players { get; set; }
}
Конечная точка для создания команды (игрок практически тот же)
public async Task<ActionResult<Team>> CreateTeam(Team team)
{
//save team to Teams set in teamlistcontext
context.Teams.Add(team);
await context.SaveChangesAsync();
return team;
}
Отрывки из метода, в котором я пытаюсь добавить игрока вкоманда
Team team = await context.Teams.FindAsync(teamId);
Player player = await context.Players.FindAsync(playerId);
//other logic not affecting issue
//
team.PlayerList.Add(player);
context.Entry(team).State = EntityState.Modified
context.SaveChanges();