2011-01-02 3 views
2

문제가 발생했습니다. 코드 첫 번째와 EF4의 CTP5로 표현하는 방법을 알 수 없습니다.EF4와 코드 첫 번째로 많은 관계가 많음

편집 : 나는 CF를 통해 복제하고자하는 바닥에 내 옛날 스키마를 추가

여기 내 특정 시나리오입니다 :

팀이 추상적 인 개념이; 특정 시즌에 특정 부문에 특정 플레이어 집합과 함께 존재해야합니다.

풋볼에서 행동이의 구체적인 예 :

  • 1996 (계절) AFC 중앙 (나누기) 휴스턴 오일 러스 (팀)
  • 1997 (계절) AFC 중앙 (나누기) 테네시 오일러 (팀)
  • 1999 (계절) AFC 중앙 (나누기) 테네시 타이탄 (팀)
  • 2002 (계절) AFC 남부 지역 (부문) 테네시 타이탄 (팀)

이들은 모두 같은 팀입니다.

// Titans team id = 17 
var myTeam = myContext.Teams.Single(t => t.Id == 17) 

// display players 
foreach (var p in myTeam.Seasons[1999].Players) 
{ 
    // Do something with the p here 
} 

// Display current division 
Response.Write(myTeam.Seasons[2002].Division.Name); 

내가 myTeam.Seasons의 ICollection에 멤버 변수 내에서 특정 쿼리 구문의 모르겠지만, 개념은 동일 없음이 작아야 : 나는 다음을 수행 할 수 있어야합니다.

EF4 CF CTP5에서 CF를 통해이 개념을 어떻게 표현할 수 있는지에 대해 알려주시겠습니까? 코드 첫 번째를 통해 어떻게 표현할 수 있습니까?

현재 SQL 테이블

CREATE TABLE dbo.Season 
(
    Id    INT IDENTITY(1,1)  NOT NULL, 
    LeagueId   INT     NOT NULL, 
    [Name]   NVARCHAR(50)   NOT NULL, 
    [Year]   CHAR(4)    NOT NULL, 
    PrevSeasonId  INT   NULL 

) ON [PRIMARY]; 

// Primary key 
ALTER TABLE dbo.Season WITH NOCHECK ADD 
    CONSTRAINT PK_Season PRIMARY KEY NONCLUSTERED (Id) ON [PRIMARY]; 

CREATE TABLE dbo.Division 
(
    Id  INT IDENTITY(1,1)  NOT NULL, 
    DefaultName NVARCHAR(50)   NOT NULL 
) ON [PRIMARY]; 

// Primary key 
ALTER TABLE dbo.Division WITH NOCHECK ADD 
    CONSTRAINT PK_Division PRIMARY KEY NONCLUSTERED (Id) ON [PRIMARY]; 

// Key Relation Table 
CREATE TABLE dbo.DivisionsInSeason 
(
    DivisionId  INT     NOT NULL, 
    SeasonId  INT     NOT NULL, 
    DefaultName NVARCHAR(50)   NOT NULL, 
    Commissioner UNIQUEIDENTIFIER  NOT NULL, 
    ParentDivId INT    NULL 
) ON [PRIMARY]; 

// Primary Key 
ALTER TABLE dbo.DivisionsInSeason WITH NOCHECK ADD 
    CONSTRAINT PK_DivisionsInSeason PRIMARY KEY NONCLUSTERED (DivisionId, SeasonId) ON [PRIMARY] ; 

// Foreign Keys  
ALTER TABLE dbo.DivisionsInSeason WITH CHECK ADD 
    CONSTRAINT FK_DivisionsInSeason_Division FOREIGN KEY(DivisionId) REFERENCES dbo.Division(Id), 
    CONSTRAINT FK_DivisionsInSeason_Season FOREIGN KEY(SeasonId) REFERENCES dbo.Season(Id), 
    CONSTRAINT FK_DivisionsInSeason_User FOREIGN KEY(Commissioner) REFERENCES dbo.[User](Id); 

CREATE TABLE dbo.Team 
(
    Id  INT IDENTITY(1,1)  NOT NULL, 
    DefaultName  NVARCHAR(50)   NOT NULL, 
    DefShortName  NCHAR(3)   NULL 
) ON [PRIMARY]; 

// Primary key 
ALTER TABLE dbo.Team WITH NOCHECK ADD 
    CONSTRAINT PK_Team PRIMARY KEY NONCLUSTERED (Id) ON [PRIMARY] ; 

// Key relationship table 
CREATE TABLE dbo.TeamsInDivision 
(
    TeamId   INT    NOT NULL, 
    DivisionId  INT    NOT NULL, 
    SeasonId  INT    NOT NULL, 
    GeneralManager UNIQUEIDENTIFIER NOT NULL, 
    Name   NVARCHAR(50)  NOT NULL, 
    ShortName  NCHAR(3)   NULL 

) ON [PRIMARY]; 

// Check Constraints 
ALTER TABLE dbo.TeamsInDivision ADD 
    CONSTRAINT PK_TeamsInDivision PRIMARY KEY NONCLUSTERED (TeamId, DivisionId, SeasonId) ON [PRIMARY]; 

// Foreign Keys  
ALTER TABLE dbo.TeamsInDivision WITH CHECK ADD 
    CONSTRAINT FK_TeamsInDivision_Team FOREIGN KEY(TeamId) REFERENCES dbo.Team(Id), 
    CONSTRAINT FK_TeamsInDivision_Division FOREIGN KEY(DivisionId) REFERENCES dbo.Division(Id), 
    CONSTRAINT FK_TeamsInDivision_Season FOREIGN KEY(SeasonId) REFERENCES dbo.Season(Id), 
    CONSTRAINT FK_TeamsInDivision_User FOREIGN KEY(GeneralManager) REFERENCES dbo.[User](Id); 

답변

관련 문제