NHibernate: ignorando completamente entità dominio di base
-
04-10-2019 - |
Domanda
Ho una situazione dove ho un Common.Domain.Person
e Specific.Domain.Person
.
Per prima cosa dovrebbe essere fornito come parte di un pacchetto comune.
Secondo appare quando pacchetto comune deve essere personalizzato per soddisfare le esigenze di progetto specifico.
Nel modello a oggetti, può essere facilmente implementato con l'ereditarietà.
Nella mappatura NH, però, ho incontrato un piccolo problema.
posso creare una mappatura <subclass>
NHibernate, ma che mi richiederebbe l'utilizzo di un discriminatore. Tuttavia, so che se la classe specifica persona è stata ereditata, quindi istanze di classi comuni non verranno mai utilizzati in questo specifico progetto.
Qual è il modo migliore per attuare questo senza aggiungere colonna discriminatore per la classe di base (dal momento che non vi sono diversi casi di discriminare)?
Soluzione
Questo è quello che volevo e supporti NHibernate utilizzando entità XML. Purtroppo questa funzione è stata borked dal momento che (almeno) NH v2 ++.
Utilizzando Doctype in NHibernate
Un work-around potrebbe essere iniettare questi properies programmaticaly quando si crea il SessionFactory (dynamic mapping)
http: // Ayende .com / Blog / archive / 2008/05/01 / dinamico-Mapping-con-NHibernate.aspx
Altri suggerimenti
Proprio mappare la Specific.Domain.Person e lasciare Common.Domain.Person non mappati.
Se non si sta salvando istanze di esso, NHibernate non ha bisogno di sapere su di esso.