Domanda

Dovresti usare un modello di dati di entità ADO.NET per ogni tabella? O uno per l'intero database in cui vengono instradate anche le relazioni, ecc ...

È stato utile?

Soluzione

Fallo per l'intero database. Se crei un modello di dati per ogni tabella non avrai il vantaggio di navigare nelle relazioni.

Se stai utilizzando il controllo del codice sorgente di checkout / merge come Subversion, tieni presente che il designer muta l'XML nella misura in cui Subversion fa fatica a unirlo. In questo caso, di solito è necessario rigenerare l'intero modello ogni volta o unire a mano.

Altri suggerimenti

Uso un Entity Data Model per le relative tabelle. A seconda delle dimensioni del tuo database, creerei un modello solo se ci fossero meno di circa 20 o 25 tabelle. È un po 'costoso creare singoli modelli per ogni tabella perché ogni modello ha un oggetto EntityConnection da creare.

Trovo che posso mantenere i modelli abbastanza bene se ho tra 5 e 15 tabelle. Il mio principale fattore decisivo è la funzionalità. Costruisco applicazioni di ingegneria, quindi ad esempio ho circa 6 tabelle di componenti strutturali in acciaio. Sono tutti in un modello. Condividono attributi tecnici comuni, quindi è più facile riutilizzare il codice specifico per la manipolazione di tali attributi.

Ciò significa che posso creare un'istanza del modello, creare gli oggetti, manipolare / organizzare quegli oggetti in un file di codice comune. Eventuali modifiche che devono essere riproposte nel database possono essere eseguite in modo abbastanza efficiente.

La linea di fondo determina la necessità e la frequenza d'uso degli oggetti sottostanti. Se stai aggiornando costantemente una o due tabelle, non ha senso avere altre 30 tabelle non correlate all'interno di quel modello. In questo scenario in cui un piccolo numero di tabelle viene utilizzato frequentemente, potrebbe essere sensato creare raccolte di questi oggetti, manipolare le raccolte e aggiornare il database nei momenti appropriati.

La manipolazione della memoria è molto più economica rispetto all'I / O su disco. Questa è solo la mia opinione sul framework e non sono assolutamente un esperto.

Uno per l'intero database o almeno per le tabelle che utilizzerai ...

Se hai una grande quantità di tabelle potresti suddividerle in schemi o in qualche altro modo categorico, ma direi che l'idea non è mai stata un modello di dati per tabella ...

Progetterei un modello concettuale / oggetto dei dati indipendentemente dallo schema del database e quindi creerei la mappatura che meglio collega il modello concettuale allo schema del database. Può usare la maggior parte se non tutte le tabelle. Se desideri un mapping uno-a-uno alle tabelle, ti consigliamo di prendere in considerazione LINQ-to-SQL, poiché è più facile lavorare con.

Oltre alle risposte di cui sopra, tenere presente che un modello EF è effettivamente a livello concettuale. Non ha bisogno di avere nulla a che fare con la struttura del database e certamente non deve rappresentare l'intero database.

Penso che se si dispone di un database di grandi dimensioni, è necessario classificare le tabelle del database. Ma devi creare una classe per ogni tabella che è un requisito primario del framework di entità ado.net.

Quando si aggiorna il database, è possibile eseguire l'aggiornamento del modello di dati.

Progetta prima il tuo database e poi crea il modello di entità ado.net.

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