Я не уверен, что модель вашего домена действительно моделирует то, что вы ищете. Не думайте, что ваш игрок играет в сезоне как игрок. Игрок участвует в сезоне и получает запись за информацию о сезоне c. Таким образом, у игрока есть история сыгранных сезонов. игрок не история сезонов.
Я думаю, я бы определил что-то вроде этого
public class Player
{
public Player() { Seasons = new List<PlayerSeason> { }; }
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public System.DateTime DateOfBirth { get; set; }
public IEnumerable<PlayerSeason> Seasons { get; private set; }
public void AddSeason(PlayerSeason playerSeason)
{
//some code that adds a season. may check if already exists. whatever your business rules say to do
Seasons.Add(playerSeason);
}
}
public class Season
{
public int Id { get; set; }
public string season { get; set; }
}
public class PlayerSeason
{
public int PlayerId {get; set; }
public int SeasonId { get; set; }
public int JerseyNumber { get; set; }
public int HeightInches { get; set; }
public int WeightPounds { get; set; }
}
Я не собираюсь вдаваться в такие причудливые вещи, как инкапсуляция коллекции , здесь уже достаточно, чтобы подумать около.
Я бы взял классы сущностей, которые вы здесь определили, а затем построил бы, используя ef-migrations.