Вы пытались добавить команду с несколькими игроками, не используя миграции?
Кстати: попробуйте это без создания HashSet в конструкторе. Это пустая трата вычислительной мощности, поскольку она будет немедленно заменена структурой сущности на собственную ICollection.
В обычной программе у меня сработало следующее. Основной () без хэш-кода:
using (var dbContext = new MyDbContext(...)
{
var team1 = dbContext.Teams.Add(new Team() {TeamName = "Team 1"});
var team2 = dbContext.Teams.Add(new Team()
{
TeamName = "My Super Team",
Players = new List<Player>()
{
new Player() {FirstName = "Christopholo", LastName = "Columbo"},
new Player() {FirstName = "Marco", LastName = "Polo"},
},
});
var player1 = dbContext.Players.Add(new Player()
{
FirstName = "X1",
LastName = "Y1",
});
var player2 = dbContext.Players.Add(new Player()
{
FirstName = "X2",
LastName = "Y2",
Teams = new List<Team>() {team1, team2, new Team() {TeamName = "Team3"});
});
dbContext.SaveChanges();
var teams = dbContext.Teams.Select(team => new
{
Id = team.Id,
Name = team.Name,
Players = team.Players.Select(player => new
{
Id = player.Id,
LastName = player.LastName,
})
.ToList(),
})
.ToList();
var players = dbContext.Players.Select(player => new
{
Id = player.Id,
LastName = player.LastName,
Teams = player.Teams.Select(team => new
{
Id = team.Id,
Name = team.TeamName,
})
.ToList(),
})
.ToList();
.ToList();
}
Это работает? А что, если вы добавите игрока в эту команду?
// add a Player using the Team's collection:
var teamToUpdate = dbContext.Teams.Where(team => team.Id ==team1.Id;
teamToUpdate.Players.Add(new Player() {FirstName = "...", LastName = "..."});
// add a Player and give him a Team:
var addedPlayer = dbContext.Player(new Player()
{
FirstName = ...,
LastName = ...,
Teams = new List<Team>() {teamToUpdate},
})
dbContext.SaveChanges();
А что будет, если вы сделаете это при использовании AddOrUpdate
?
Я пробовал это (все без HashSet), и это работает.
Совет: сначала запустите его без миграции, затем попробуйте сделать это в процессе миграции. Отладка с помощью точек останова, вы действительно мигрируете?