추상 기본 클래스 매핑에서 구체적인 유니온 서브 클래스로 many-to-one 관계를 매핑하는 데 문제가 있습니다. 예 :추상 기본 클래스에서 유니온 서브 클래스로 NHibernate many-to-one 관계 매핑
public abstract class Entity
{
public virtual Guid ID {get; set;}
public virtual string Name {get;set;}
public virtual User OwnerUser {get; set;}
}
public class User : Entity
{
public virtual string UserName {get; set;}
}
여기서 볼 수 있듯이 모든 데이터베이스 개체에 기본 추상 클래스가 있습니다. 나는 이러한 클래스를 추상 매핑 클래스 인 Entity 클래스와 함께 그리고 사용자를 공용 서브 클래스로 매핑하려고합니다. 구성 객체를 만들 때 오류가 발생하지 않고 스키마가 올바르게 내보내기됩니다. 그러나 OwnerUser 필드는 모든 구체적인 클래스에 대해 데이터베이스에 표시되지 않습니다. 다음은 매핑의 예입니다.
<class entity-name="Entity" name="Entity" abstract="true">
<id name="ID" type="guid">
<generator class="guid.comb"/>
</id>
<property name="Name" />
<many-to-one name="OwnerUser" column="ID" entity-name="User" />
</class>
<union-subclass name="User" entity-name="User" extends="Entity">
<property name="UserName" />
</union-subclass>
또한 데이터베이스 백엔드로 Oracle XE 인스턴스를 사용하고 있습니다. 이것이 질문에 올바로 대답하기에 충분한 정보가 아니라면 알려주십시오. 제가 할 수있는 것을 추가 할 것입니다.
최악의 시나리오 모든 구체적인 개체에 명시 적으로 다 대일 관계를 명시 적으로 추가하겠습니다. 그러나 이것은 가장 우아한 해결책은 아니며 제안한 것이 효과가 있다고 생각합니다. 여러 가지 인터넷을 지원하는 튜브에서 이에 대한 구체적인 예를 찾을 수 없었습니다. 문서에서 무언가를 놓칠 수는 있었지만 유효하지 않은 유스 케이스라는 것을 명시하지 않았습니다. 처음이 아니었을 것입니다. -/
이 질문에 대한 답변은 크게 받고 있습니다. 시간 내 주셔서 감사합니다.