Come mappare una gerarchia più profonda in negligenza
-
03-07-2019 - |
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)
- Cliente astratto (carrello, ordini, ruoli)
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.
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.