2014-02-18 2 views
0

아직 Entity Framework Code First부터 시작하고 있습니다. 새 리소스를 만들 때 목록에서 리소스를 선택할 수 있기를 원합니다. 자원 모델을 사용하여 자원을 참조하는 방법Entity Framework 코드 우선 - 동일한 테이블 참조

public class Resource 
{ 

    public int ResourceId { get; set; } 
    [Required] 
    [DataType(DataType.EmailAddress)] 
    [EmailAddress] 
    public string EmailAddress { get; set; } 
    [Required] 
    public string Password { get; set; } 
    public string FullName { get; set; } 


    public int TimeManagerId { get; set; } 

    public int TravelManagerId { get; set; } 

    public int OvertimeManagerId { get; set; } 

    public int AbsenceManagerId { get; set; } 
    public virtual Resource TimeManager { get; set; } 
    public virtual Resource TravelManager { get; set; } 
    public virtual Resource OvertimeManager { get; set; } 
    public virtual Resource AbsenceManager { get; set; } 

} 
+0

이 코드는 정상적으로 보입니다. 이게 뭐가 잘못 됐어? 오류가 있습니까? 당신의 질문은 정확히 무엇입니까? –

+0

컨트롤러를 생성 할 때 필드가 드롭 다운리스트가되어서는 안됩니까? 나는 현재 int textfields를 표시한다. – razeth01

+0

나는 이것의 논리적 모델을 이해하지 못한다. 하지만 아무 것도 시도하지 않았 니? –

답변

2

나는 아주 가깝다고 생각합니다. 규칙에 따라이 작업을 수행하려는 경우 모델의 외래 키를 [탐색 속성 이름] [주 기본 키 속성 이름] 형식으로 변경할 수 있습니다. 당신은 단지 첫 번째 EF 코드로 시작하고 있기 때문에 특히, ... ResourceId-Id 그래서 당신이 (발생하는 자체를 예정) 참조하고있는 테이블의 기본 일치

public int TimeManagerResourceId { get; set; } 
public int TravelManagerResourceId { get; set; } 
public int OvertimeManagerResourceId { get; set; } 
public int AbsenceManagerResourceId { get; set; } 

을 변경, 내가 권하고 싶습니다 Entity Framework Power Tools를 설치합니다. DbContext가 포함 된 .cs 파일을 마우스 오른쪽 버튼으로 클릭하면 매핑의 읽기 전용 다이어그램이 생성됩니다.

다이어그램의 엔터티를 마우스 오른쪽 단추로 클릭하고 테이블 매핑을 봅니다. EF가 외래 키를 알아 내지 못하고 4 가지를 더 만들었습니다. 위의 내용을 변경하고 나면 다이어그램을 다시 생성하고 차이점을 확인하십시오.

편집 : 코드 첫 번째 규칙에 따른 문서 ... http://msdn.microsoft.com/en-us/data/jj679962.aspx

+0

이것은 완벽하게 작동합니다. 정말 고맙습니다. 당신의 생명의 은인. – razeth01

+0

굉장! 관심있는 경우 코드 첫 번째 규칙에 대한 참조로 게시물을 업데이트했습니다. 또한 이들은 종종 "자체 참조"또는 "계층 적"엔터티라고도하며 자세한 정보를 검색해야하는 경우 편리합니다. –

관련 문제