2010-12-15 2 views
3

나는 다음과 같은Entity Framework CTP 5 - 코드 첫 번째 매핑 - 열거 형 목록을 올바르게 매핑 할 수 없습니다.

[DataContractAttribute] 
public class Animal 
{ 
    [Key] 
    [XmlElement(ElementName = "Id")] 
    [DataMember()] 
    public Guid Id 
    { 
     get; 
     set; 
    } 

    [XmlElement(ElementName = "AnimalType")] 
    [DataMember()] 
    public List<AnimalType> AnimalType 
    { 
     get; 
     set; 
    } 
} 

그리고 난 코드를 통해 첫 번째 접근법을 EF와 테이블에

 modelBuilder.Entity<Animal>().ToTable("Animal"); 
 modelBuilder.Entity<Animal>().ToTable("Animal"); 
 modelBuilder.Entity<Animal>().ToTable("Animal"); 

알다시피 나는 어떤 복잡한 매핑을 수행하지 못했지만, AnimalType 열거 목록 않았다 않았다 DB의 모든 열/테이블에 자동으로 매핑되지 않습니다. 열거 형 목록의 매핑을 제어하기 위해 모델 빌더에 몇 가지 추가 코드를 추가해야합니까?

답변

8

EF CTP5부터 enum은 아직 이 아니며이 지원됩니다. 팀은 2011 년 1/4 분기에 출시 될 예정인 다음 RTM 버전에서 열거 형을 완전히 지원할 것이라고 발표했습니다.

+1

EF 4.1에는 열거 형 지원이 없으므로 레드 몬드 사람들은 열거 형을 int 및 back으로 캐스팅하는 방법을 알아내는 데 어려움을 겪고있는 것으로 보입니다. 그들은 vNext (4.2 또는 무엇이든)에서 지원이 추가 될 것이라고 주장합니다. 출처 : http://reddevnews.com/blogs/data-driver/2011/03/entity-framework-code-first-no-enum.aspx –

+0

지원 열거 형은 .Net 4.0과 함께 제공되는 핵심 EF 라이브러리를 변경해야하는 것처럼 보입니다. . EF 4.1에서는 핵심 라이브러리를 변경하지 않기 때문에이를 수행 할 수 없습니다. –

+0

정말 나쁜 소식입니다 ... – Stacker

1

나는 그것이 아직도 사실인지 아닌지는 모르겠지만, 가장 긴 시간 동안 알고있다. EF는 enum을 지원하지 않았다.

어느 쪽이든, 저는 EF가 다른 엔티티가 아닌 다른 유형의 목록을 처리하는 데 일반적인 문제가 있다고 생각합니다. 기본 키 란 무엇입니까? 그 가치는 무엇입니까? 한 열에 데이터를 저장하거나 별도의 테이블을 만들고 외래 키 제약 조건을 만들어야합니까? 이 질문은 모델을 데이터베이스 스키마로 변환하기 전에 대답해야하는 질문입니다.

+3

예 .. 귀하의 의견에 동의하며 물론 많은 보류중인 질문이 있습니다. 개발자가 열거 형을 광범위하게 사용하고 있기 때문에 이러한 부족한 지원은 EF에 매우 좋지 않으며 자신의 백 로그에서 최우선 적이어야한다고 생각합니다. –

관련 문제