如何在 NHibernate 中创建通用组件映射,我有一个类 Pair{virtual T First{get;set},virtual T Second{get;set;}},我试图用类似这样的东西来映射它,但它不起作用
如何在 NHibernate 中创建通用组件映射,我有一个类 Pair{virtual T First{get;set},virtual T Second{get;set;}},我试图用类似这样的东西来映射它,但它不起作用
它奏效了,诀窍是我必须使用 `,而我正在使用 '
我认为您可以映射该类,但您必须在映射中明确声明将使用哪种类型作为泛型参数,如下所示:
<class name="GenericClass`1[ConcreteType], assembly"
table="table">
<id name="Id">
<generator class="identity"/>
</id>
</class>
在你的情况下,我想它会是:
<class name="Pair`1[Namespace.TheClass], assembly"
table="table">
<id name="Id">
<generator class="identity"/>
</id>
<many-to-one name="First" class="Namespace.TheClass, assembly"/>
</class>
作为一个组件:
<component name="Property" class="Pair`1[Namespace.TheClass], assembly">
<many-to-one name="First" class="Namespace.TheClass, assembly"/>
</component>
如果您想使用相同的泛型类或具有另一种类型的组件作为泛型参数,则必须为该特定情况创建另一个映射。