Il database di default
Avete creato il vostro primo progetto ASP.NET MVC. Potete eseguirlo attraverso Visual Studio. Il sito è perfettamente funzionante e vi permette già la registrazione di un nuovo utente ed il login. Se potete registrarvi ed accedere significa che “sotto” al sito è già presente un database. Per sapere dove è il database e quali tabelle compongono la gestione utenti, aprite in Visual Studio SQL Server Object Explorer e vedrete il vostro database sotto
localdb – DefaultConnection
DefaultConnection è il nome della stringa di connessione usata dalla vostra applicazione per collegarsi al Database. Se osservate il contenuto di Tables vedete tabelle che gestiscono gli utenti. Se avete creato il sito usando il Framework 4.5.1 o 4.5.2 queste tabelle sono 6.
Il nostro database SQL Server
Noi non vogliamo lavorare sul database di default, bensì su un database di SQL Server sulla nostra macchina o in rete. Creiamo un database di SQL Server da qualche parte. Ora dobbiamo fare puntare il nostro sito a questo database. Aprite il file web.config e cercate il tag connectionStrings. Sostituite la stringa di connessione con una valida connessione al vostro database SQL Server (in rete trovate le stringhe di connessione). Lasciate il nome del tag a “DefaultConnection”. Lanciate l’applicazione attraverso Visual Studio.
Questo è un nuovo database quindi l’utente che avete creato prima sul database di default non esiste. Dovete ri-effettuare la registrazione e, a questo punto, potrete effettuare il login. Se ora controllate il contenuto del vostro database SQL Server (con Visual Studio SQL Server Object Explorer oppure con SQL Server Management Studio) vedrete che ci sono anche qui le 6 tabelle che permettono la gestione degli utenti. Create dal sito stesso.
Nel vostro progetto infatti esistono i modelli delle tabelle che consentono la gestione degli utenti (nella directory Models), e il vostro sito, vedendo che sul database non esistevano le tabelle relative , le ha create per voi. Molto comodo.
Da qui in poi creerete i vostri modelli, cioè i contenitori dei vostri dati e il sito tenterà sempre di creare le tabelle relative per voi. Questo non è una procedura comoda perchè non vi consente errori o ripensamenti mentre create il vostro modello. E’ meglio dire al sito di non stare da qui in poi a controllare la reciprocità modello – tabella: costruirete i vostri modelli a mano e quindi le vostre tabelle su SQL Server. Per comunicare questo al sito, aprite il file Global.asax.cs e nella funzione Application_Start(), aggiungete questa riga :
Database.SetInitializer<YourSite.Models.ApplicationDbContext>(null);
Dove ApplicationDbContext è il nome della classe che si connette al database usando la stringa DefaultConnection. Cercatela nel sito.