2011-04-28 4 views
0

새로운 환경이 생겨서 (어쨌든) 나에게 EF4.0에서 가장 좋은 방법은 무엇인지 궁금합니다 (데이터베이스 우선). 이것은 만들어지는 예제이지만, 내가해야 할 일의 논리를 모방합니다.EF4.0에서이 요구 사항을 어떻게 수용할까요?

두 개의 테이블 인 PEOPLE 및 TEAMS가 있다고 가정하면 각 팀에는 팀 리더와 백업 팀 리더가 있습니다. people 테이블에는 고유 ID가있는 각 개인에 대한 단일 레코드가 있으며 팀 레코드에는 고유 한 ID가 있지만 people 테이블에 맵핑되는 TeamLeaderID W BackupTeamLeaderId도 있습니다.

EF에서 어떻게 처리합니까? Teamleaderid 만있는 경우 Team.People.Name에서 액세스 할 수 있지만 팀에서 두 개의 링크가 있다는 것을 알고 있기 때문에이 디자인은 작동하지 않습니다.

나는 이것에 대한 여러 가지 kludgy 시나리오를 생각할 수 있지만 EF에서이를 설정하거나 기본 테이블을 다시 디자인하는 적절한 방법은 무엇입니까?

답변

1

EF 질문으로 시작하는 이유가 확실하지 않습니다. 데이터베이스 스키마가 제대로 작동합니까? 그렇다면 제시하십시오. 그렇지 않다면, 나는 거기에서 시작할 것입니다.

팀 테이블에는 피플 테이블의 리더 외래 키가 필요합니다. 어떤 사람이 한 팀에만있을 수 있으면 People 테이블에 TeamID 열을 추가 할 수 있습니다. TempID가 특정 팀으로 설정된 각 사용자는 해당 팀의 플레이어입니다.

+0

사람 테이블에 ID와 이름의 두 필드 만 있다고 가정하면 팀 테이블에는 ID, TeamName 및 TeamLeaderID, BackupTeamLeaderID의 네 필드가 있습니다. 사람들 테이블에 teamleaderid에 대한 외래 키가 있고 사람들 테이블에 backupteamleaderid .... 그래서 backupteamleaders 이름을 어떻게 얻을 수 있습니까? team.people.name을 수행하면 어떻게됩니까? (모든 사람은 하나 이상의 팀에 속할 수 있으며, 팀 리더는 다른 팀의 백엔드 리더 일 수도 있고 그 반대 일 수도 있습니다.) – user318573

+1

내가하는 말을 따르면, 팀과 같은 것입니다 .BackupTeamLeaderID.Name '('BackupTeamLeaderID'가 외래 키라고 가정). 그러나 나는 세부 사항 중 일부에 여전히 애매합니다. –

+0

좋아, 네가 못을 박은 것은 아니지만 나를 답으로 이끌어 준다. 그래서 나는 당신에게 크레딧을 줄 것이다. backupteamleader 외래 키를 사용하는 'backupteamleader'라는 두 번째 탐색 속성을 수동으로 추가해야했습니다. 이 시점까지는 모델에 테이블을 추가 할 때 추가 된 기본 탐색 속성 만 사용했습니다 (외래 키가 제대로 설정되었다고 가정). – user318573

관련 문제