NHibernate 컴포넌트로 상속을 할 수 있습니까? 빠른 google은 적절한 결과 (모든 블로그)로 가득 찬 손만 돌려 주었고 모든 것이 얼마전에 작성되었으므로 아직 사용할 수 있는지 궁금해하고 있었습니까?NHibernate 컴포넌트 상속
대신 어떻게 처리합니까?
NHibernate 컴포넌트로 상속을 할 수 있습니까? 빠른 google은 적절한 결과 (모든 블로그)로 가득 찬 손만 돌려 주었고 모든 것이 얼마전에 작성되었으므로 아직 사용할 수 있는지 궁금해하고 있었습니까?NHibernate 컴포넌트 상속
대신 어떻게 처리합니까?
현재로서는 불가능합니다. 상속이 필요하면 엔티티를 매핑해야합니다.
그래, OOP에서 "구성 요소"의 정의를 읽었을 때, 구성 요소에 대한 상속을 전혀 갖지 못하기 때문에 – Raffaeu
디에고가 말했던 것 외에도 IUserType을 사용하여 계층 구조에 대한 사용자 지정 수화/탈수를 구현할 수있는 옵션이 있습니다. 자세한 내용은 this article을 참조하십시오 (Java는 같지만 C#에서 동일한 메커니즘을 사용할 수 있음).
예.
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)
}
}
구체적으로, 당신은 NHibernate가 상속을 알아야한다는 것을 무엇을하려하고 있습니까? – apollodude217