NHibernate: Эти классы, на которые ссылается «extends», не найдены

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

то есть. StringProperty -> AbstractProperty <T> -> 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>

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

Благодаря,

Тед.

nhibernate,

3

Ответов: 1


0

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

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

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

NHibernate,
Похожие вопросы