2013-01-08 2 views
0

MVC4에서 모델 첫 번째 Entity Framework를 사용하려고합니다. 엔티티 모델에서 일부 속성의 생성을 비활성화하려면이 속성은 viewModel로만 사용되는 것으로 가정합니다. 컨트롤러의 모델 속성을 동적으로 채 웁니다.모델에서 일부 속성을 만들려면 Entity Framework를 중지하십시오.

이러한 속성에 대해 지정해야하는 주석 특성을 알 수 있습니까?

이 작업을 수행 할 수없는 경우이 작업을 수행하려면 분리 된 ViewModel을 만들어야합니다. 그러나 뷰 모델에는 엔티티 모델과 연결된 다른 속성이 여전히 있습니다.이 두 모델을 매핑하는 가장 좋은 방법은 무엇입니까? 감사.

답변

1

Entity Framework 디자이너는 지속 된 엔터티의 모델을 만듭니다. 이 디자이너를 통해 추가 된 모든 속성은 유지됩니다. 디자이너는 모델링 된 모든 엔티티에 대해 부분 클래스를 만듭니다. 뷰에 추가 비 지속 속성을 사용하려면 비 지속 속성 (지속 속성이 이미 자동 생성 된 부분에 포함되어 있음) 만있는 엔티티에 대해 클래스의 자체 부분 부분을 만들거나 특수 생성 필요한 모든 속성을 가진 모델보기.

+0

이 새로운 개념을 내게 소개해 주셔서 감사합니다. 제 생각에는 모델 방식을 사용하고 있습니다. 부분 클래스는 코드에 대해서만 작동한다고 생각합니다. 맞습니까? – anIBMer

+0

부분 클래스는 디자이너가 생성 한 코드의 핵심 개념으로 .NET 2.0이 도입 된 이래로입니다. EF를 사용하면 주로 데이터베이스에서 먼저 사용되고 모델에서는 먼저 코드로 디자이너 생성 코드 = 단일 클래스의 두 부분을 필요로하지 않기 때문에 먼저 사용됩니다. –

2

속성을 저장하지 않도록 EF에 알리기 위해 [NotMapped] 속성을 사용해보십시오. 예 :

public class MyEntity { 
    public int Id {get; set;} // will be stored as a column in the DB 
    [NotMapped] 
    public int MyProperty {get; set;} // will not be stored as a column in the DB 
} 
+0

나는이 피곤,이 속성과 함께 작동하지 않습니다, 감사합니다. 내가 쓸 수있는 그녀의 속성은 뭐니? – anIBMer

관련 문제