2013-09-22 3 views
1

난 내가 객체를 저장하는 엔티티 프레임 워크를 사용하고자하는 다양한 계절스토어 클래스

public class PlayerModel 
{ 
    public int PlayerID { get; set; } 
    public Dictionary<int, SeasonStats> SeasonStats { get; set; } 

    public PlayerModel() 
    { 
     this.SeasonStats = new Dictionary<int, SeasonStats>(); 
     //Add season stats for each year 
     this.SeasonStats.Add(2012, new SeasonStats()); 
     this.SeasonStats.Add(2011, new SeasonStats()); 
     this.SeasonStats.Add(2010, new SeasonStats()); 
    } 
} 

public class SeasonStats 
{ 
    public int Goals { get; set; } 
    public int Assists { get; set; } 
} 

에 대한 플레이어의 통계를 저장하는 데 사용하고 클래스를 가지고 있지만 확실하지 않다 무엇을 SeasonStats 속성에 배치 할 속성으로 개체를 올바르게 저장할 수 있습니다.

답변

1

SeasonStats는 Player와 엄격하게 관련된 클래스이므로 플레이어가없는 SeasonStats는있을 수 없으므로 플레이어와 관계없이 컴포지션 관계를 정의해야합니다. 즉, SeasonStats가 Player에 정확히 일치하는 일대 다 관계를 선언해야한다는 것입니다. 먼저이 클래스를 수정해야합니다.

public class PlayerModel 
{ 
    [Key] 
    public int PlayerID { get; set; } 
    [InverseProperty("Player")] 
    public ICollection<SeasonStats> SeasonStats { get; set; } 

    public PlayerModel() 
    { 
     this.SeasonStats = new List<SeasonStats>(); 
     //Add season stats for each year 
     this.SeasonStats.Add(new SeasonStats(){Year = 2012};); 
     this.SeasonStats.Add(new SeasonStats(){Year = 2011};); 
     this.SeasonStats.Add(new SeasonStats(){Year = 2010};); 
    } 
} 

public class SeasonStats 
{ 
    [Key] 
    public int Year { get; set;} 
    public int Goals { get; set; } 
    public int Assists { get; set; } 
    [ForeignKey("PlayerID")] 
    public Player Player{get; set; } 
    [Required] 
    public int PlayerID {get; set; } 
}