귀하의 엔티티 클래스 같은 것을 보일 것입니다 : Player
의 인스턴스와, 그와
public class Team
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Player> Players { get; set; }
}
public class Player
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
[ForeignKey("Team")]
public int TeamId { get; set; }
public virtual Team Team { get; set; }
}
을 간단히 수행 할 수 있습니다
player.Team.Name
팀의 이름을 얻으려면. 당신은 당신을 반복하고 플레이어의 모음이있는 경우, 당신은 열심히 Team
먼저로드해야합니다, 그래서 당신은 N + 1 개 쿼리와 끝까지하지 않습니다
var players = db.Players.Include(m => m.Team).ToList();
당신이 다른 길을 갈 필요가 있다면, , 당신은뿐만 아니라 Team
의 인스턴스에서 플레이어의 목록을로드 할 수
var players = team.Players.ToList();
을 마찬가지로, 당신은 열심히 쿼리를 최소화하기 위해 선수를로드 할 수
var team = db.Teams.Include(m => m.Players).SingleOrDefault(m => m.Id == teamId);
을 가치가있는 것, 학급과 건물 이름은 관습에 어긋납니다. 필자가 제공 한 샘플 코드의 클래스 및 속성 이름을 확인하십시오. 엔티티 클래스의 이름은 항상 이 아니고 Teams
이 아니어야합니다. 속성 이름은 파스칼 방식으로 함께 실행해야합니다. LikeThis, LikeThis 또는 Like_This. 또한 속성 이름에 클래스 이름을 포함하는 반 패턴입니다. Name
속성은 예를 들어 Team
에 속하므로 물론 팀 이름입니다. 접두사가 Team
(TeamName
) 인 영점이 있으며 코드가 더 장황 해집니다. 예를 들어, 어느 것이 더 읽기 : team.Name
또는 team.TeamName
?