2010-06-30 2 views
2

NHibernate 컴포넌트로 상속을 할 수 있습니까? 빠른 google은 적절한 결과 (모든 블로그)로 가득 찬 손만 돌려 주었고 모든 것이 얼마전에 작성되었으므로 아직 사용할 수 있는지 궁금해하고 있었습니까?NHibernate 컴포넌트 상속

대신 어떻게 처리합니까?

+0

구체적으로, 당신은 NHibernate가 상속을 알아야한다는 것을 무엇을하려하고 있습니까? – apollodude217

답변

3

현재로서는 불가능합니다. 상속이 필요하면 엔티티를 매핑해야합니다.

+0

그래, OOP에서 "구성 요소"의 정의를 읽었을 때, 구성 요소에 대한 상속을 전혀 갖지 못하기 때문에 – Raffaeu

1

디에고가 말했던 것 외에도 IUserType을 사용하여 계층 구조에 대한 사용자 지정 수화/탈수를 구현할 수있는 옵션이 있습니다. 자세한 내용은 this article을 참조하십시오 (Java는 같지만 C#에서 동일한 메커니즘을 사용할 수 있음).

최대 절전 모드 기능 요청은 here입니다. NHibernate 버전은 here입니다, 투표하십시오.

0

예.

public class A { } 

public class B : A { } 

public sealed class C : B { } 

public abstract class BaseAMap<T> : ComponentMap<T> where T : A { 
    public BaseAMap() { 
     // Map A here 
    } 
} 

public class AMap : BaseAMap<A> { 
} 

public class BaseBMap<T> : BaseAMap<T> where T : B { 
    public BaseBMap() { 
     // Map B (excluding A) 
    } 
} 

public class BMap : BaseBMap<B> { 
} 

public sealed class CMap : BaseBMap<B> { 
    public CMap() { 
     // Map C (excluding B) 
    } 
}