기본 클래스가 하나의 엔티티 인 다음 다른 엔티티가 다른 기본 클래스에서 파생되는 시나리오가 있습니다. 둘 다 내 도메인에서 의미가 있으며 따로 사용할 수 있습니다. 나는 기본 클래스의 사본을 가져 오기 할 때nhibernate를 통해 기본 클래스를로드하면 파생 클래스의 매핑이 잘못 사용됩니다.
public class MyBaseClassMap : ClassMap<MyBaseClass>
{
Id("MyBaseClassID");
Map(x => x.Name);
}
public class MyChildClassMap : SubclassMap<MyChildClass>
{
Map(x => x.AdditionalField);
}
은 무엇 일어나고있는 것은, 그것의 하위 클래스에 대한 매핑을 사용하고 있습니다 :
public class MyBaseClass
{
int ID { get; set; }
string Name { get; set; }
}
public class MyChildClass
{
string AdditionalField { get; set; }
}
는 둘 다 같은 유창함 nHibernate 수 사용 ClassMap를 사용하여 매핑 한 . 마치 기본 클래스와 하위 클래스의 차이점을 알지 못하는 것 또는 잘못된 클래스 매핑을 선택하는 것입니다. SQL 문과 자식 테이블에 대한 조인을 관찰하고 추가 열을 가져 와서 확인했습니다. 올바른지도를 사용하는 방법은 없나요?
"선택이 깨지지 않았습니다." NHibernate는 문서화 된대로 동작합니다. –