2014-01-28 6 views
0

안녕하세요 저는 POCO가 새로 생겼습니다. 가능한 경우 테이블을 열거 형으로 매핑 할 수 있는지 궁금합니다. 내 간단한 그림을 봐 :POCO에서 Enum으로 테이블 형식 EF

http://www.jonataspiazzi.xpg.com.br/outpost/diagram02.png

UserType는 유형의 목록, 매우 같은 C# 코드에서 열거 형을 나타냅니다. 그래서 enum 유형의 속성을 가진 클래스를 생성하려고합니다. 이 같은

뭔가 : 가능한 맵이 같은 일부 코드로 테이블이

[Table("User")] 
public class User 
{ 
    public int UserId { get; set; } 

    public string Name { get; set; } 

    [ForeignKey("???")] 
    public UserType Type { get; set; } 
} 

[Table("UserType")] 
public enum UserType 
{ 
    [Description("Administrator")] 
    Administrator = 1, 

    [Description("Operator")] 
    Operator = 2, 

    [Description("Consultor")] 
    Consultor = 3 
} 

인가?
* ps :이 코드는 올바르지 않습니다. 내 질문을 설명하는 유일한 방법입니다.

답변

0

아니요, 불가능합니다. 엔티티는 참조 유형 (enum은 값 유형)이어야하며 id 속성을 가져야합니다. 열거 형은 명명 된 상수로 설정됩니다. id 속성은 없습니다.

해결 방법 - 당신이 당신의 열거에 매핑 할 수 있습니다 테이블 User의 정수 값을 저장할 수 있습니다

public class User 
{ 
    public int UserId { get; set; } 
    public string Name { get; set; } 
    public UserType Type { get; set; } 
} 

public enum UserType 
{ 
    Administrator = 1, 
    Operator = 2, 
    Consultor = 3 
} 

당신은 다음 데이터베이스 컬럼에 매핑 사용자 클래스의 정수 속성을 작성해야 EF 4를 사용하는 경우, 매핑되지 않지만 정수 속성을 통해 계산 된 enum 속성 :

관련 문제