NHibernate: эти классы, на которые ссылается 'extends', не найдены - PullRequest
3 голосов
/ 16 июня 2009

У меня есть простой пример; конкретный класс, который наследует абстрактный универсальный класс, который реализует интерфейс.

т. StringProperty -> AbstractProperty -> IProperty

Я получаю следующую ошибку ...

NHibernate.MappingException: These classes referenced by 'extends' were not found:
NhibernateTest.AbstractGenericProperty`1[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], PromoNhibernateTest
   at NHibernate.Cfg.MappingsQueue.CheckNoUnavailableEntries()
   at NHibernate.Cfg.Configuration.SecondPassCompile()
   at NHibernate.Cfg.Configuration.BuildSessionFactory()

Я использую атрибуты NHibernate, которые производят следующее отображение ...

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <class name="NhibernateTest.AbstractGenericProperty`1, PromoNhibernateTest" lazy="false" table="Properties">
    <id>
      <generator class="identity" />
    </id>
    <discriminator column="Name" type="String" />
  </class>
  <subclass name="NhibernateTest.StringProperty, PromoNhibernateTest" lazy="false" extends="NhibernateTest.AbstractGenericProperty`1[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], PromoNhibernateTest" discriminator-value="string" />
</hibernate-mapping>

Пожалуйста, сообщите, что не так с отображением.

Спасибо

Тед.

1 Ответ

0 голосов
/ 24 сентября 2012

Проблема в том, что невозможно отобразить AbstractProperty.

Вы не можете отобразить открытые универсальные типы, даже если вы также создаете сопоставления подклассов, которые определяют универсальный тип.

Я не совсем понимаю, почему NHibernate начинает жаловаться только тогда, когда добирается до отображения подкласса, но я почти уверен, что проблема в отображении AbstractProperty, а не в подклассе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...