Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Annotazioni
Una versione aggiornata di questa esercitazione è disponibile qui usando la versione più recente di Visual Studio. La nuova esercitazione usa ASP.NET Core MVC, che offre molti miglioramenti in questa esercitazione.
Questa esercitazione illustra ASP.NET Core MVC con controller e visualizzazioni. Razor Pages è una nuova alternativa in ASP.NET Core, un modello di programmazione basato su pagine che semplifica la creazione dell'interfaccia utente Web e una maggiore produttività. È consigliabile provare l'esercitazione su Razor Pages prima della versione di MVC. Il tutorial su Razor Pages:
- È più facile da seguire.
- Vengono illustrate altre funzionalità.
- È l'approccio preferito per lo sviluppo di nuove app.
Creazione di una stringa di connessione e utilizzo di SQL Server LocalDB
La MovieDBContext classe creata gestisce l'attività di connessione al database e il mapping Movie degli oggetti ai record di database. Una domanda che è possibile porre, tuttavia, è come specificare il database a cui si connetterà. In realtà non è necessario specificare il database da usare. Per impostazione predefinita, Entity Framework userà LocalDB. In questa sezione verrà aggiunta in modo esplicito una stringa di connessione nel file Web.config dell'applicazione.
SQL Server Express LocalDB (database locale di SQL Server Express)
LocalDB è una versione leggera del motore di database di SQL Server Express che viene avviata su richiesta ed eseguita in modalità utente. LocalDB viene eseguito in una modalità di esecuzione speciale di SQL Server Express che consente di usare i database come file .mdf . In genere, i file di database LocalDB vengono conservati nella cartella App_Data di un progetto Web.
SQL Server Express non è consigliato per l'uso nelle applicazioni Web di produzione. LocalDB in particolare non deve essere usato per la produzione con un'applicazione Web perché non è progettato per funzionare con IIS. Tuttavia, è possibile eseguire facilmente la migrazione di un database LocalDB a SQL Server o SQL Azure.
In Visual Studio 2017 LocalDB viene installato per impostazione predefinita con Visual Studio.
Per impostazione predefinita, Entity Framework cerca una stringa di connessione denominata uguale alla classe del contesto dell'oggetto (MovieDBContext per questo progetto). Per altre informazioni, vedere Stringhe di connessione di SQL Server per ASP.NET applicazioni Web.
Aprire il file radice dell'applicazioneWeb.config illustrato di seguito. Non il file Web.config nella cartella Views .
Trovare l'elemento <connectionStrings> :
Aggiungere il stringa di connessione seguente all'elemento <connectionStrings> nel file Web.config.
<add name="MovieDBContext"
connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Movies.mdf"
providerName="System.Data.SqlClient"
/>
L'esempio seguente mostra una parte del file Web.config con la nuova stringa di connessione aggiunta:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie-fefdc1f0-bd81-4ce9-b712-93a062e01031;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-MvcMovie-fefdc1f0-bd81-4ce9-b712-93a062e01031.mdf" providerName="System.Data.SqlClient" />
<add name="MovieDBContext" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Movies.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>
Le due stringhe di connessione sono molto simili. La prima stringa di connessione è denominata DefaultConnection e viene usata per il database di appartenenza per controllare chi può accedere all'applicazione. La stringa di connessione aggiunta specifica un database LocalDB denominato Movie.mdf che si trova nella cartella App_Data . In questa esercitazione non verrà usato il database di appartenenza. Per altre informazioni sull'appartenenza, l'autenticazione e la sicurezza, vedere l'esercitazione Creare un'app MVC ASP.NET con autenticazione e database SQL e distribuirla nel servizio app di Azure.
Il nome della stringa di connessione deve corrispondere al nome della classe DbContext .
using System;
using System.Data.Entity;
namespace MvcMovie.Models
{
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
}
Non è effettivamente necessario aggiungere la MovieDBContext stringa di connessione. Se non si specifica una stringa di connessione, Entity Framework creerà un database LocalDB nella directory users con il nome completo della classe DbContext (in questo caso MvcMovie.Models.MovieDBContext). È possibile assegnare qualsiasi nome al database, purché abbia il suffisso .MDF. Ad esempio, è possibile assegnare al database il nome MyFilms.mdf.
Successivamente, creerai una nuova MoviesController classe che puoi usare per visualizzare i dati dei film e consentire agli utenti di creare nuovi elenchi di film.