Model First

Questo video e la procedura dettagliata forniscono un'introduzione allo sviluppo Model First con Entity Framework. Model First consente di creare un nuovo modello usando Entity Framework Designer e quindi di generare uno schema di database dal modello. Il modello viene archiviato in un file EDMX (estensione con estensione edmx) e può essere visualizzato e modificato in Entity Framework Designer. Le classi con cui si interagisce nell'applicazione vengono generate automaticamente dal file EDMX.

Guarda il video

Questo video e la procedura dettagliata forniscono un'introduzione allo sviluppo Model First con Entity Framework. Model First consente di creare un nuovo modello usando Entity Framework Designer e quindi di generare uno schema di database dal modello. Il modello viene archiviato in un file EDMX (estensione con estensione edmx) e può essere visualizzato e modificato in Entity Framework Designer. Le classi con cui si interagisce nell'applicazione vengono generate automaticamente dal file EDMX.

Presentato da: Rowan Miller

Video: WMV | MP4 | WMV (ZIP)

Prerequisiti

Per completare questa procedura dettagliata, è necessario che Visual Studio 2010 o Visual Studio 2012 sia installato.

Se si usa Visual Studio 2010, sarà necessario installare Anche NuGet .

1. Creare l'applicazione

Per semplificare le operazioni, si creerà un'applicazione console di base che usa Model First per eseguire l'accesso ai dati:

  • Aprire Visual Studio.
  • File -> Nuovo -> Progetto...
  • Selezionare Windows dal menu a sinistra e applicazione console
  • Immettere ModelFirstSample come nome
  • seleziona OK.

2. Creare un modello

Si userà Entity Framework Designer, incluso come parte di Visual Studio, per creare il modello.

  • Progetto -> Aggiungi nuovo elemento...

  • Selezionare Dati dal menu a sinistra e quindi ADO.NET Entity Data Model

  • Immettere BloggingModel come nome e fare clic su OK. Verrà avviata la Creazione guidata modello di dati di entità

  • Selezionare Modello vuoto e fare clic su Fine

    Create Empty Model

Entity Framework Designer viene aperto con un modello vuoto. È ora possibile iniziare ad aggiungere entità, proprietà e associazioni al modello.

  • Fare clic con il pulsante destro del mouse sull'area di progettazione e scegliere Proprietà

  • Nella Finestra Proprietà modificare il nome del contenitore di entità in BloggingContextQuesto è il nome del contesto derivato che verrà generato automaticamente, il contesto rappresenta una sessione con il database, consentendo di eseguire query e salvare i dati

  • Fare clic con il pulsante destro del mouse sull'area di progettazione e scegliere Aggiungi nuovo -> Entità...

  • Immettere blog come nome dell'entità e BlogId come nome della chiave e fare clic su OK

    Add Blog Entity

  • Fare clic con il pulsante destro del mouse sulla nuova entità nell'area di progettazione e scegliere Aggiungi nuovo -> Proprietà scalare, immettere Name come nome della proprietà.

  • Ripetere questo processo per aggiungere una proprietà URL .

  • Fare clic con il pulsante destro del mouse sulla proprietà URL nell'area di progettazione e selezionare Proprietà, nella Finestra Proprietà modificare l'impostazione Nullable su True. In questo modo è possibile salvare un blog nel database senza assegnargli un URL

  • Usando le tecniche appena apprese, aggiungere un'entità Post con una proprietà chiave PostId

  • Aggiungere proprietà scalari titolo e contenuto all'entità Post

Ora che sono presenti un paio di entità, è possibile aggiungere un'associazione (o una relazione) tra di esse.

  • Fare clic con il pulsante destro del mouse sull'area di progettazione e scegliere Aggiungi nuovo -> Associazione...

  • Fare una fine della relazione punto a Blog con una molteplicità di Uno e l'altro punto finale di Post con una molteplicità di MoltiQuesto significa che un blog ha molti post e un post appartiene a un blog

  • Verificare che la casella Aggiungi proprietà chiave esterna all'entità 'Post' sia selezionata e fare clic su OK

    Add Association MF

È ora disponibile un modello semplice da cui è possibile generare un database e usarlo per leggere e scrivere dati.

Model Initial

Passaggi aggiuntivi in Visual Studio 2010

Se si lavora in Visual Studio 2010, è necessario eseguire alcuni passaggi aggiuntivi per eseguire l'aggiornamento alla versione più recente di Entity Framework. L'aggiornamento è importante perché consente di accedere a una superficie API migliorata, che è molto più facile da usare, nonché le correzioni di bug più recenti.

Prima di tutto, è necessario ottenere la versione più recente di Entity Framework da NuGet.

  • Progetto:> gestisci pacchetti NuGet...Se l'opzione Gestisci pacchetti NuGet non è disponibile, è consigliabile installare la versione più recente di NuGet
  • Selezionare la scheda Online
  • Selezionare il pacchetto EntityFramework
  • Fai clic su Install (Installa).

Successivamente, è necessario scambiare il modello per generare codice che usa l'API DbContext, introdotta nelle versioni successive di Entity Framework.

  • Fare clic con il pulsante destro del mouse su un punto vuoto del modello in Ef Designer e selezionare Aggiungi elemento generazione codice...

  • Selezionare Modelli online dal menu a sinistra e cercare DbContext

  • Selezionare EF 5.x DbContext Generator per C#, immettere BloggingModel come nome e fare clic su Aggiungi

    DbContext Template

3. Generazione del database

Dato il modello, Entity Framework può calcolare uno schema di database che consentirà di archiviare e recuperare i dati usando il modello.

Il server di database installato con Visual Studio è diverso a seconda della versione di Visual Studio installata:

  • Se si usa Visual Studio 2010, si creerà un database SQL Express.
  • Se si usa Visual Studio 2012, si creerà un database Local DB.

Procedere e generare il database.

  • Fare clic con il pulsante destro del mouse sull'area di progettazione e scegliere Genera database da modello...

  • Fare clic su Nuovo Connessione ion... e specificare Local DB o SQL Express, a seconda della versione di Visual Studio in uso, immettere ModelFirst.Blogging come nome del database.

    LocalDB Connection MF

    Sql Express Connection MF

  • Selezionare OK e verrà chiesto se si vuole creare un nuovo database, selezionare

  • Selezionare Avanti e Entity Framework Designer calcolerà uno script per creare lo schema del database

  • Dopo aver visualizzato lo script, fare clic su Fine e lo script verrà aggiunto al progetto e aperto

  • Fare clic con il pulsante destro del mouse sullo script e scegliere Esegui. Verrà richiesto di specificare il database a cui connettersi, specificare Local DB o SQL Server Express, a seconda della versione di Visual Studio in uso

4. Lettura e scrittura di dati

Ora che è disponibile un modello, è possibile usarlo per accedere ad alcuni dati. Le classi che verranno usate per accedere ai dati vengono generate automaticamente in base al file EDMX.

Questa schermata proviene da Visual Studio 2012, se si usa Visual Studio 2010, i file BloggingModel.tt e BloggingModel.Context.tt saranno direttamente nel progetto anziché annidati nel file EDMX.

Generated Classes

Implementare il metodo Main in Program.cs, come illustrato di seguito. Questo codice crea una nuova istanza del contesto e quindi la usa per inserire un nuovo blog. Usa quindi una query LINQ per recuperare tutti i blog dal database ordinati alfabeticamente in base al titolo.

class Program
{
    static void Main(string[] args)
    {
        using (var db = new BloggingContext())
        {
            // Create and save a new Blog
            Console.Write("Enter a name for a new Blog: ");
            var name = Console.ReadLine();

            var blog = new Blog { Name = name };
            db.Blogs.Add(blog);
            db.SaveChanges();

            // Display all Blogs from the database
            var query = from b in db.Blogs
                        orderby b.Name
                        select b;

            Console.WriteLine("All blogs in the database:");
            foreach (var item in query)
            {
                Console.WriteLine(item.Name);
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }
    }
}

È ora possibile eseguire l'applicazione e testarla.

Enter a name for a new Blog: ADO.NET Blog
All blogs in the database:
ADO.NET Blog
Press any key to exit...

5. Gestione delle modifiche del modello

È ora possibile apportare alcune modifiche al modello, quando si apportano queste modifiche è necessario aggiornare anche lo schema del database.

Si inizierà aggiungendo una nuova entità User al modello.

  • Aggiungere un nuovo nome di entità Utente con Username come nome chiave e String come tipo di proprietà per la chiave

    Add User Entity

  • Fare clic con il pulsante destro del mouse sulla proprietà Username nell'area di progettazione e selezionare Proprietà. Nella Finestra Proprietà modificare l'impostazione MaxLength su 50Questo limita i dati che possono essere archiviati nel nome utente a 50 caratteri

  • Aggiungere una proprietà scalare DisplayName all'entità User

È ora disponibile un modello aggiornato e si è pronti per aggiornare il database per supportare il nuovo tipo di entità Utente.

  • Fare clic con il pulsante destro del mouse sull'area di progettazione e selezionare Genera database da modello. Entity Framework calcolerà uno script per ricreare uno schema basato sul modello aggiornato.
  • Fare clic su Fine
  • È possibile che vengano visualizzati avvisi sulla sovrascrittura dello script DDL esistente e sulle parti di mapping e archiviazione del modello, fare clic su per entrambi gli avvisi
  • Lo script SQL aggiornato per creare il database viene aperto automaticamente
    Lo script generato elimina tutte le tabelle esistenti e quindi ricrea lo schema da zero. Questa operazione può essere utile per lo sviluppo locale, ma non è possibile eseguire il push delle modifiche in un database già distribuito. Se è necessario pubblicare le modifiche in un database già distribuito, sarà necessario modificare lo script o usare uno strumento di confronto dello schema per calcolare uno script di migrazione.
  • Fare clic con il pulsante destro del mouse sullo script e scegliere Esegui. Verrà richiesto di specificare il database a cui connettersi, specificare Local DB o SQL Server Express, a seconda della versione di Visual Studio in uso

Riepilogo

In questa procedura dettagliata è stato esaminato lo sviluppo Model First, che ha consentito di creare un modello in Entity Framework Designer e quindi di generare un database da tale modello. È stato quindi usato il modello per leggere e scrivere alcuni dati dal database. Infine, è stato aggiornato il modello e quindi è stato ricreato lo schema del database in modo che corrisponda al modello.