모델에 지정된 엔터티 형식에서 파생 된 자신의 클래스 인스턴스를 구체화 할 수있는 방법이 있습니까? 주어진 엔티티에 대한 모델에 "ClassName"속성이 있고 EF가 엔티티의 인스턴스를 구체화 할 때마다 대신 지정된 ClassName의 인스턴스를 만들고 싶습니다 (물론 엔티티의 하위 클래스 임) .Entity Framework 6에서 엔터티 구체화 사용자 지정
ObjectContext에 ObjectMaterialized 이벤트가 있지만이 시점에서 엔티티가 이미 생성되어 있다는 것을 알고 있습니다.
var objectContext = ((IObjectContextAdapter)dbContext).ObjectContext;
objectContext.ObjectMaterialized += OnObjectMaterialized;
오브젝트 생성을 사용자 정의하기 전에 바로 연결해야합니다. 당신은 지구상에서 왜 이것을해야하는지 물을 수 있습니다. 나는 지속적으로 변화하는 대형 객체 모델을 가지고있어서 EDMX에서 모든 클래스를 정의 할 수 없다. 데이터베이스에 저장 한 속성은 개체 모델 계층의 맨 위에있는 두 클래스로 추상화 할 수 있습니다. 유형별 테이블 상속을 사용하는 엔티티를 작성하려고합니다. 하지만 EF를 사용할 때 특정 객체 인스턴스를 직접 검색 할 수 있다면 정말 좋을 것입니다.
감사합니다.
질문에 대한 답변이 아니지만 생성 된 엔티티 클래스는 부분적입니다. 단순히 부분 클래스에 필요한 기능을 추가 할 수 없습니까? – oerkelens
@oerkelens의 덧글에 추가하려면 확장 클래스를 사용할 수도 있습니다. 클래스 생성에 변화가있을 때 세대를 망칠 수 있습니다. – ESG
부분 클래스를 통해 메서드 또는 속성을 추가하는 것으로 충분하지 않습니다. 엔티티 클래스에서 상속을 사용하여 전체 개체 모델을 만들어야합니다. –