Potrebbe essere mi manca qualcosa di molto ovvio. Ma non sono stato in grado di trovare un modo per aggiungere una nuova colonna a un tavolo / modello esistente in EF Core.
Questa è la documentazione che sto seguendo: https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell
E questo è quello che ho fatto finora:
- Migrazione creata utilizzando questo comando: "Aggiungi-Migrazione -Nome CodingSoldierDbContextMigration -OutputDir Migrations -Context CodingSoldierDbContext"
- Database aggiornato utilizzando il comando: "Update-Database -Migration CodingSoldierDbContextMigration -Context CodingSoldierDbContext". Le tabelle sono state create nel Database.
- Ora ho bisogno di aggiungere una nuova colonna a una tabella esistente. Aggiungo la colonna al modello nel file .cs. E rimuovo la migrazione esistente: "Remove-Migration -Force -Context CodingSoldierDbContext"
- Ora eseguo nuovamente i comandi nei passaggi 1 e 2. Add-Migration funziona e la migrazione viene creata. Ma Update-Database non riesce con l'errore: "C'è già un oggetto chiamato 'AspNetRoles' nel database." il che significa che la tabella è già presente nel database che ha senso.
Quindi, come faccio ad aggiornare un tavolo da gioco già esistente? 2 modi in cui posso pensare sono:
- Rilascia il database Crea migrazione e aggiorna il database. Ma tutti i dati saranno spariti.
- Aggiungi colonna nel modello. Aggiorna manualmente la tabella utilizzando uno script SQL per aggiungere la nuova colonna.
Ma penso che ci dovrebbe essere un modo migliore per farlo.