Condividi tramite


Aggiunta di un modello (2012)

di Rick Anderson

Nota

Una versione aggiornata di questa esercitazione è disponibile qui che usa ASP.NET MVC 5 e Visual Studio 2013. È più sicuro, molto più semplice da seguire e dimostra più funzionalità.

In questa sezione verranno aggiunte alcune classi per la gestione dei film in un database. Queste classi saranno la parte "modello" dell'applicazione ASP.NET MVC.

Si userà una tecnologia di accesso ai dati di .NET Framework nota come Entity Framework per definire e usare queste classi di modello. Entity Framework (noto anche come ENTITY Framework) supporta un paradigma di sviluppo denominato Code First. Code First consente di creare oggetti modello scrivendo classi semplici. Queste classi sono note anche come classi POCO, da "oggetti CLR semplici".") È quindi possibile creare il database in tempo reale dalle classi, che consente un flusso di lavoro di sviluppo molto pulito e rapido.

Aggiunta di classi modello

In Esplora soluzioni fare clic con il pulsante destro del mouse sulla cartella Modelli, scegliere Aggiungi e quindi selezionare Classe.

Screenshot che mostra la finestra Esplora soluzioni. L'opzione Aggiungi è selezionata nel menu di scelta rapida Modelli e nel menu secondario è selezionata l'opzione Classe.

Immettere il nome della classe "Movie".

Aggiungere le cinque proprietà seguenti alla Movie classe :

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; }
}

Verrà usata la Movie classe per rappresentare i film in un database. Ogni istanza di un Movie oggetto corrisponderà a una riga all'interno di una tabella di database e ogni proprietà della classe eseguirà il Movie mapping a una colonna della tabella.

Nello stesso file aggiungere la classe seguente MovieDBContext :

public class MovieDBContext : DbContext 
{
    public DbSet<Movie> Movies { get; set; } 
}

La MovieDBContext classe rappresenta il contesto del database dei film di Entity Framework, che gestisce il recupero, l'archiviazione e l'aggiornamento Movie delle istanze di classe in un database. Deriva MovieDBContext dalla DbContext classe di base fornita da Entity Framework.

Per poter fare riferimento DbContext a e DbSet, è necessario aggiungere l'istruzione seguente using all'inizio del file:

using System.Data.Entity;

Di seguito è riportato il file Movie.cs completo. Sono state rimosse diverse istruzioni using non necessarie.

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; }
    }
}

Creazione di una stringa di connessione e uso 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 a cui è possibile porre, tuttavia, è come specificare il database a cui si connetterà. A tale scopo, aggiungere le informazioni di connessione nel file Web.config dell'applicazione.

Aprire il file radice dell'applicazione Web.config . Non il file Web.config nella cartella Views . Aprire il file Web.config descritto in rosso.

Screenshot che mostra la finestra Esplora soluzioni. La configurazione del punto Web è cerchiata in rosso.

Aggiungere la stringa di connessione seguente all'elemento <connectionStrings> nel file Web.config .

<add name="MovieDBContext" 
   connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" 
   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)\v11.0;Initial Catalog=aspnet-MvcMovie-2012213181139;Integrated Security=true" 
       providerName="System.Data.SqlClient" 
  />    
  <add name="MovieDBContext" 
       connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" 
       providerName="System.Data.SqlClient" 
  /> 
</connectionStrings>

Questa piccola quantità di codice e XML è tutto ciò che è necessario scrivere per rappresentare e archiviare i dati dei film in un database.

Successivamente, creerai una nuova MoviesController classe che puoi usare per visualizzare i dati del film e consentire agli utenti di creare nuove presentazioni di film.