2013-09-03 1 views
1

Type 형식의 속성을 데이터베이스에 직접 저장할 수 없습니다.Entity Framework 코드 우선 : 유형의 계산 된 속성으로 인해 Update-Database에서 ArgumentNullException이 발생 함

[Table("DescriptiveCategory")] 
public class DescriptiveCategory : Category { 

    public string RelatedTypeName { get; set; } 

    public Type RelatedType { 
     get { 
      return Type.GetType(RelatedTypeName); 
     } 
     set { 
      RelatedTypeName = value.FullName; 
     } 
    } 
} 

이를, 불행하게도 작동하지 않습니다 : 나는 데이터베이스를 업데이트하려고하면, 내가 할 내가 엔티티 프레임 워크가 원하는 형식을 반환하는 유형 이름을 저장하고 속성을 만들려면 - 따라서, 나는 랩퍼를 작성하기로 결정

Value cannot be null. 
Parameter name: extent 

내가 RelatedType 속성을 언급하면 ​​모든 것이 정상입니다. 그러나 Entity Framework가이 속성을 가진 어떤 것에도 필요하지 않습니다. 그것은 내 필요 만 제공합니다. 대신 get 및 set 메소드를 대신 작성할 수는 있지만 계산 된 특성을 가진이 접근 방식이 작동하지 않는 이유를 이해할 수 없습니다.

+1

답이되어야하는 NotMappedAttribute –

+0

@ ta.speot.is를 시도하십시오. –

답변

1

사용 NotMappedAttribute :

는 속성이나 클래스는 데이터베이스 매핑에서 제외되어야 함을 나타냅니다.

+0

감사합니다. 어쨌든 누군가 Entity Framework가이 계산 된 속성에 관심을 갖는 이유를 설명하면 매우 기쁩니다. – user2742898

+0

글쎄, http://stackoverflow.com/a/11902129/242520에 따르면 그것은'Type' 데이터베이스에 암시 적으로 매핑 된 속성을 가지고 있기 때문입니다. 당신이 알고있는 것처럼'Type'의 매핑이 가능하지 않습니다. –

+0

알기. 하지만 계산 된 속성 일 때 암묵적으로 매핑되는 이유는 무엇입니까? 또는 더 일반적으로 : 계산 된 속성이 암시 적으로 매핑되는 경우와 그렇지 않은 경우는 언제입니까? – user2742898

관련 문제