1

NHibernate でジェネリック コンポーネント マッピングを作成するにはどうすればよいですか。クラス Pair{virtual T First{get;set}, virtual T Second{get;set;}} があります。

4

2 に答える 2

1

それはうまくいきました、トリックは私が'を使用していたのに対し、'を使用しなければならなかったことでした

于 2009-02-13T18:05:46.007 に答える
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>

また、同じジェネリッククラス、またはジェネリックパラメータとして別のタイプのコンポーネントを使用する場合は、その特定のケースに対して別のマッピングを作成する必要があります。

于 2009-02-12T19:30:10.693 に答える