6

Ogni volta che creo un nuovo modello di dati con EF, devo inserire il file TT e sostituire ogni occorrenza di ICollection e la prima comparsa di HashSet per ObservableCollection così come lo spazio dei nomi generico per ObjectModel.Come non è necessario sostituire ICollection a ObservableCollection nel file TT?

Il processo è descritto on the internet (la lista proiettile proprio sopra la sezione " caricamento pigro") e sembra essere come un work-around hacky per una lacuna di una nuova tecnologia, che con il tempo avrebbe dovuto essere posto rimedio e non necessario.

È possibile creare automaticamente una raccolta osservabile o l'approccio descritto è il più efficiente e generalmente applicato?

+0

Ho dovuto modificare file TT in più occasioni e anche se * sembra * hacky, ho trovato che si tratta di un approccio molto efficiente e sorprendentemente solido alla generazione personalizzata. Quindi, IMHO, modifica il file TT (devi solo farlo una volta) –

+0

@NielsFilter: una volta nel progetto _every_. Questo è il problema, specialmente in un'azienda, dove dozzine di sviluppatori creano modelli di dati (in side project o in utilità) con EF. ASCIUTTO. –

+0

@ g.pickardou ASCIUTTO? –

risposta

3

Penso che la personalizzazione di un modello .TT per le proprie esigenze sia una pratica accettabile (o più: migliore). L'unica domanda, fai questo processo di personalizzazione ripetutamente/manualmente o crea il tuo .TT e installalo come Visual Studio Item Template. Il mio voto va a questa seconda opzione, che è una piccola applicazione di DRY.

Tuttavia, è necessario prepararsi a uno svantaggio: quando i modelli di articoli .TT originali cambieranno (nuova versione, ecc.), Allora dovresti applicare tali modifiche anche ai tuoi modelli personalizzati. Il modo più semplice per farlo: diff, quindi scegliere il modo più efficiente: replicare le modifiche della versione sul modello personalizzato o riapplicare le modifiche di personalizzazione sulla nuova versione.

+0

Buono a sapersi, non sono completamente libero. +1 per il collegamento informativo. –

Problemi correlati