2011-03-28 4 views
5

Utilizzando l'approccio code-first disponibile nel nuovo 4.1 RC.Mantieni il contenuto del database sulla modifica del modello

C'è un modo per mantenere i dati correnti memorizzati in un database quando la modalità cambia? Il database viene creato dal framework entità e in genere il database viene eliminato e ricreato sulle modifiche del modello.

Ovviamente, non appena il modello viene modificato, non sarà possibile utilizzare l'oggetto contesto per connettersi al database per recuperare i dati, quindi quali sono le opzioni?

+0

Forse correlato in qualche modo a http://stackoverflow.com/questions/4485742/ef-code-first-recreate-database-if-model-changes –

risposta

3

Il codice non supporta ancora la migrazione/evoluzione del database. Se si desidera eseguire lo sviluppo DB incrementale, utilizzare prima il modello (EDMX) con il modello di generatore di DbContext T4 e il pacchetto Entity designer database generation che è in grado di creare diff. script dal modello.

2

From Scott Gu:

importante, però, l'auto-creare opzione di database è solo un'opzione - è non è assolutamente necessario. Se si puntare la stringa di connessione in un database esistente , allora EF "code first" non tenterà di creare uno automaticamente. L'auto-ricreare opzione, inoltre, non sarà abilitata a meno che non si desidera esplicitamente EF per fare questo - in modo non c'è bisogno di preoccuparsi cadere e ricreare il database a meno che non hai esplicitamente hai indicato volerlo fare così.

+0

Ma ciò implica anche che dovrò manualmente modificare lo schema del database in abbinare nuovamente la modalità giusta? –

+0

Probabilmente ... per essere onesti, non pensavo che fosse un grosso problema, ma sembra che il codice prima non mantenga il modello e il db in sincrono senza riscrivere il DB – taylonr