我有一个简单的例子;一个具体的类,它继承了一个实现接口的抽象泛型类。
即。 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>
请告知映射有什么问题。
谢谢,
泰德。
答案 0 :(得分:0)
问题在于无法映射AbstractProperty。
即使您还创建了定义泛型类型的子类映射,也无法映射打开的泛型类型。
我不太清楚为什么NHibernate在进入子类映射时才开始抱怨,但我很确定问题出在AbstractProperty映射上,而不是子类。