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
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
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
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
È ora disponibile un modello semplice da cui è possibile generare un database e usarlo per leggere e scrivere dati.
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
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.
Selezionare OK e verrà chiesto se si vuole creare un nuovo database, selezionare Sì
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.
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
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 Sì 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.