Il progettista di Entity Framework non è più efficace

0

Nel mio posto di lavoro corrente, Entity Framework 5 viene utilizzato per l'accesso / manipolazione dei dati.

È un approccio basato sul database che utilizza il designer di modelli per aggiungere / modificare / eliminare / aggiornare entità.

problema

Ora abbiamo tonnellate di tavoli e questo sta diventando un incubo da aggiornare. Il modello è molto contorto e talvolta può bloccare l'IDE. Non sono ottimista sul lato Entity Framework delle cose, ma sicuramente questo non è l'approccio raccomandato. Non mi è mai piaciuto il designer dall'inizio. I designer del WYSIWYG mi danno problemi nei miei occhi.

Soluzione?

Le modifiche strutturali al database sono essenzialmente fatte da DBAdmins, quindi non possiamo fare il codice prima (comunque, preferisco non avere tabelle di database generate).

C'è un approccio migliore a questo? Non dovremmo usare un mapper basato su XML invece di usare il designer. Che dire del codice prima del database esistente?

    
posta davenewza 02.09.2013 - 17:18
fonte

2 risposte

4

Dovresti prendere in considerazione alcune cose. Ancora più importante, non utilizzare un modello enorme per l'intera app. Crea diversi modelli focalizzati sui tuoi sottodomini. (Questo è il mio consiglio se stai usando il codice prima o usando il designer) Se non riesci a rinunciare a questo grande modello e non vuoi capovolgerlo prima, dai un'occhiata ai designer EF di LLBLGen e DevArt.

    
risposta data 02.09.2013 - 19:27
fonte
2

Abbiamo avuto la stessa situazione e abbiamo trasformato l'approccio in codice. Perché essenzialmente ciò che EF Designer fa è:

  1. Genera alcune classi per te
  2. Mappare le classi a entità di database equivalenti

Qual è l'essenza di ogni ORM. Il designer EF è solo una utilità o struttura là fuori, per farti risparmiare tempo dalla scrittura di centinaia di codici di entità. Quindi, in codice prima, la differenza principale è che dovresti scrivere il codice da solo.

Tuttavia, dal momento che dici che DBA modifica il DB, ti consiglio due cose:

  1. In primo luogo, parla con lui per seguire OCP anche a livello di database. Una volta che una tabella viene utilizzata in molti punti del codice, è meglio non modificarla, ma estenderla.
  2. Crea un test di mappatura potente per il tuo livello di accesso ai dati e i tuoi modelli. Abbiamo questo. Ogni volta che incontriamo un bug, prima eseguiamo test di mappatura per assicurarci che le nostre classi siano mappate correttamente nel nostro database, quindi cerchiamo in altri posti.
risposta data 02.09.2013 - 19:35
fonte

Leggi altre domande sui tag