2010-10-04 7 views
0

Ayende a un excellent exemple d'utilisation de la correspondance <any>here, que je suis en train de relayer dans le cadre de ma question puisque les commentaires sont fermés sur ce billet de blog. Compte tenu de sa cartographie d'origine:Mappage du revers d'une association NHibernate <any>

<class name="Order" table="Orders"> 

    <id name="Id"> 
     <generator class="native"/> 
    </id> 

    <any name="Payment" id-type="System.Int64" meta-type="System.String" cascade="all"> 
     <meta-value value="CreditCard" class="CreditCardPayment"/> 
     <meta-value value="Wire" class="WirePayment"/> 
     <column name="PaymentType"/> 
     <column name="PaymentId"/> 
    </any> 

</class> 

<class name="CreditCardPayment" table="CreditCardPayments"> 
    <id name="Id"> 
     <generator class="native"/> 
    </id> 
    <property name="IsSuccessful"/> 
    <property name="Amount"/> 
    <property name="CardNumber"/> 
</class> 

<class name="WirePayment" table="WirePayments"> 
    <id name="Id"> 
     <generator class="native"/> 
    </id> 
    <property name="IsSuccessful"/> 
    <property name="Amount"/> 
    <property name="BankAccountNumber"/> 
</class> 

... comment pourrais-je aller sur le mappage d'une propriété nommée sur les ordre des classes CreditCardPayment et WirePayment qui serait le « revers » de l'association permettant traversal de ces paiements rétroactifs jusqu'à l'Ordre auquel ils sont associés? Le getcha pour moi ici est que CreditCardPayment et WirePayment peuvent potentiellement avoir les mêmes ID puisqu'ils sont dans des tables différentes, donc j'ai besoin d'un moyen de dire à NHibernate de prendre en compte le PaymentType.

Répondre

2

Les associations hétérogènes bidirectionnelles (c'est-à-dire <any>) ne sont pas prises en charge par NHibernate. Je sais que ce n'est pas ce que vous vouliez entendre, mais c'est tout.

+0

Merci! Même si ce n'était pas la réponse que je voulais entendre, c'est toujours une réponse. –

Questions connexes