Domanda

Appena iniziato l'apprendimento NHiberate. Sembra piuttosto noioso per scrivere i file di configurazione hbm.xml adeguati per ogni tabella del database.

La domanda è: può NHibernate leggere in tabelle e recuperare automaticamente le relazioni e aveva bisogno di file di configurazione così come le classi di database mapper per te? Sembra che il programmatore deve ancora fare un sacco di lavoro a terra inizialmente. Poi mi sono imbattuto Codesmith che ha ottenuto i modelli per NHiberate? Ha colmare il divario?

È stato utile?

Soluzione

È possibile utilizzare modelli di codice, ma questo crea ancora un IMHO dolore. Il modo migliore è quello di utilizzare Fluent NHibernate . Hanno una nuova funzione di auto-mapper, che utilizza la configurazione per convenzione. Nessun file di mapping, rende solo supposizioni che si usano nomi simili e possibile definire regole di come convertire un nome di entità a un nome di tabella.

Altri suggerimenti

generazione di codice può colmare questa lacuna davvero bene, ho iniziato ad usare CodeSmith, ma poi hanno fatto che un elemento di pagare così mi sono trasferito a MyGeneration . Il mio approccio è quello di attaccare il DB prima, il codice di generazione dei file di mapping, e lezioni di generazione se non esistono già. Che ottiene qualcosa che va molto in fretta, grande per un prototipo e la creazione di dati di test.

I file di mapping, classi e DB sono spesso poi modificate a mano. In alcuni casi ho cercato di ottenere il codice di generazione di lavorare come parte di CI -, ma è dimostrato difficile farlo, a meno che non si è disciplinato a dove vi separi siete fatti a mano modifiche al codice. classi parziali sono stati un aiuto, ma ancora un prob per ottenere tutta la squadra sulla stessa pagina, nessuno piace avere il loro codice sovrascritto da uno strumento, anche se è possibile eseguire il rollback e unire.

Io lavoro per CodeSmith ... Si prega di tenere presente che MyGeneration non è stato aggiornato in eterno il che significa che manca il supporto troppo. CodeSmith supporta pienamente i suoi prodotti e modelli. Questo significa che eventuali bug di modello saranno fissati e verificati da Codesmith.

Grazie

-Blake Niemyjski

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