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)?

È stato utile?

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.

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