Ho diverse applicazioni per console Windows esistenti che utilizzano Entity Framework 6.13 per accedere a una tabella di database. Desidero aggiungere una nuova colonna alla tabella del database. Le applicazioni della console esistenti avranno esito negativo quando la nuova colonna verrà aggiunta alla fine della tabella? Non cambierò alcun nome o attributo di colonna esistente. Non cambierò l'ordine delle colonne nella tabella. Ho intenzione di aggiungere la colonna alla fine della tabella del database.
Le mie applicazioni di console di produzione esistenti che utilizzano un modello di Entity Framework (che ha avuto accesso alla tabella senza la nuova colonna) non riescono a causa della modifica?
No, non mancherà le tue applicazioni di console esistenti anche se aggiungi Nuova colonna alla tabella di database esistente. Perché, la configurazione Entity Framework dell'applicazione Console non sarà a conoscenza della colonna appena aggiunta che è stata aggiunta al lato database.
L'EF Fluent API tenta sempre di mappare il tuo modello di dominio con le tabelle del database secondo la tua configurazione. Se il sistema mappato verrà eseguito senza alcun errore. Quindi, qui non hai toccato le colonne della tabella del database esistente e stai solo aggiungendo nuove colonne. Pertanto, EF Fluent API può mappare correttamente il database esistente con il modello di dominio dell'applicazione Console e l'applicazione della console può essere eseguita correttamente.
Nota: Sto supponendo che, la colonna appena aggiunta non abbia vincoli come NOT NULL, PRIMARY KEY ecc.,
L'aggiunta di una colonna al database non causerà alcun errore con i modelli di Entity Framework, presupponendo che non vi siano vincoli sulla colonna. Qualsiasi record creato da EF avrà la colonna impostata su null e qualsiasi aggiornamento effettuato non modificherà il valore della colonna.
Tieni presente che EF non sarà a conoscenza della tua colonna e potrebbe andare persa se in seguito eseguirai una migrazione o se utilizzerai la strategia di inizializzazione dropCreate (sul cambio di modello / sempre).
Inoltre, l'ordine delle colonne nel database non ha impatto sul framework delle entità.