У меня возникла проблема, отображающая отношение «много-к-одному» от абстрактного сопоставления базового класса к конкретному объединению-подклассу. Пример:Сопоставление связей NHibernate от абстрактных базовых классов до union-subclasses
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 в качестве базы данных. Если этого недостаточно, чтобы правильно ответить на вопрос, дайте мне знать, и я добавлю, что смогу.
Худший сценарий сценария Я просто добавлю отношения «один-два» ко всем конкретным объектам явно, но это не самое элегантное решение, и я думаю, что то, что я предложил, должно работать. Я не смог найти конкретных примеров этого на трубах, которые влияют на различные сети, и я не нашел ничего в документации, явно заявив, что это недопустимый вариант использования, хотя я мог что-то пропустить. Это было бы не в первый раз: -/
Любые ответы на этот вопрос очень ценятся. Спасибо за ваше время.