NHibernate通用组件

时间:2009-02-12 17:39:58

标签: nhibernate nhibernate-mapping

如何在NHibernate中创建通用组件映射,我有一个类对{virtual T First {get; set},虚拟T秒{get; set;}},我试图用这样的东西映射它不工作

            

2 个答案:

答案 0 :(得分:1)

它有效,诀窍是我必须使用`,而我正在使用'

答案 1 :(得分:0)

我认为你可以映射这个类,但你必须在映射中明确声明哪个类型将用作泛型参数,如下所示:

    <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>

如果您想使用相同的泛型类或其他类型的组件作为泛型参数,则必须为该特定情况创建另一个映射。