Domanda

Ho questo oggetto grafico, voglio mappare:

  • Account astratto (nome utente, password, ...)
    • Cliente astratto (carrello, ordini, ruoli)
      • IndividualCustomer (dati utente)
      • CorporateCustomer (dati utente diversi, dati azienda)
    • Amministratore (adminroles)

Come può essere mappato su una tabella? (So ??come farlo con una gerarchia di entità profonda solo 1 livello, proprio come nei documenti, ma questo è diverso).

Qualcuno ha un'idea? Ho chiesto lo stesso in http://groups.google.com/group/nhusers/ browse_frm / thread / 7a85cba0048c18d8? hl = en , ma finora non ho ricevuto una risposta utile.

È stato utile?

Soluzione 2

le sottoclassi di nidificazione sono contro lo schema xml, quindi suppongo che non funzionerà. probabilmente dovrei anche annidare la dichiarazione del discriminatore, che sembra anche hacker.

e mappandolo in modo piatto ... passo un discriminatore per una classe astratta, che non può mai essere usata perché una classe astratta non può essere istanziata. sembra anche sbagliato.

ma hai ragione, lo proverò un po 'di tempo. in questo momento mi sembra un'idea migliore lasciare che il cliente abbia un account, invece di esserlo.

grazie!

Altri suggerimenti

Da quello che vedo, non dovrebbe essere diverso dalla gerarchia profonda a un livello. prova questo:

<hibernate-mapping> 
<class                                                     
    name="Account" 
    table="..." > 
    <property .../> 
        ... 
    <subclass                                              
        name="Customer" > 
        <property ... "/> 
        ... 
    </subclass> 

    <subclass                                              
        name="IndividualCustomer" > 
        <property ... "/> 
        ... 
    </subclass> 
    ... 
</class> 

Non ho NHibernate qui, per controllarlo, ma sembra che dovrebbe funzionare. Puoi anche provare a nidificare gli elementi della sottoclasse in caso contrario.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top