Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här videon och den stegvisa genomgången ger en introduktion till Model First-utveckling med Entity Framework. Med Model First kan du skapa en ny modell med Entity Framework Designer och sedan generera ett databasschema från modellen. Modellen lagras i en EDMX-fil (.edmx-tillägget) och kan visas och redigeras i Entity Framework Designer. De klasser som du interagerar med i ditt program genereras automatiskt från EDMX-filen.
Titta på videon
Den här videon och den stegvisa genomgången ger en introduktion till Model First-utveckling med Entity Framework. Med Model First kan du skapa en ny modell med Entity Framework Designer och sedan generera ett databasschema från modellen. Modellen lagras i en EDMX-fil (.edmx-tillägget) och kan visas och redigeras i Entity Framework Designer. De klasser som du interagerar med i ditt program genereras automatiskt från EDMX-filen.
Presenterad av: Rowan Miller
Förutsättningar
Du måste ha Visual Studio 2010 eller Visual Studio 2012 installerat för att slutföra den här genomgången.
Om du använder Visual Studio 2010 måste du också ha NuGet installerat.
1. Skapa programmet
För att hålla det enkelt ska vi skapa ett grundläggande konsolprogram som använder Model First för att utföra dataåtkomst:
- Öppna Visual Studio
- Fil –> Ny –> Projekt...
- Välj Windows på den vänstra menyn och Konsolprogram
- Ange ModelFirstSample som namn
- Välj OK
2. Skapa modell
Vi ska använda Entity Framework Designer, som ingår som en del av Visual Studio, för att skapa vår modell.
Projekt –> Lägg till nytt objekt...
Välj Data på den vänstra menyn och sedan ADO.NET entitetsdatamodell
Ange BloggingModel som namn och klicka på OK. Då startas guiden Entitetsdatamodell
Välj Tom modell och klicka på Slutför
Entity Framework Designer öppnas med en tom modell. Nu kan vi börja lägga till entiteter, egenskaper och associationer till modellen.
Högerklicka på designytan och välj Egenskaper
I fönstret Egenskaper ändrar du namnet på entitetens container till BloggingContextDet här är namnet på den härledda kontexten som ska genereras åt dig, kontexten representerar en session med databasen, så att vi kan fråga efter och spara data
Högerklicka på designytan och välj Lägg till ny –> entitet...
Ange Blogg som entitetsnamn och BlogId som nyckelnamn och klicka på OK
Högerklicka på den nya entiteten på designytan och välj Lägg till ny -> skalär egenskap, ange Namn som namnet på egenskapen.
Upprepa den här processen för att lägga till en URL-egenskap .
Högerklicka på url-egenskapen på designytan och välj Egenskaper. I fönstret Egenskaper ändrar du inställningen Nullable till Sant. Det gör att vi kan spara en blogg i databasen utan att tilldela den en URL
Med hjälp av de tekniker som du just har lärt dig lägger du till en Post-entitet med en PostId-nyckelegenskap
Lägg till skalära egenskaper för Rubrik och Innehåll till Post-entiteten
Nu när vi har ett par entiteter är det dags att lägga till en association (eller relation) mellan dem.
Högerklicka på designytan och välj Lägg till ny -> association...
Få ena änden av relationen att peka på Blogg med en multiplicitet av en och den andra slutpunkten peka till Post med en multiplicitet av MångaDetta innebär att en blogg har flera inlägg och varje inlägg tillhör en blogg
Kontrollera att rutan Lägg till egenskaper för sekundärnyckel i Entiteten "Post" är markerad och klicka på OK
Nu har vi en enkel modell som vi kan generera en databas från och använda för att läsa och skriva data.
Ytterligare steg i Visual Studio 2010
Om du arbetar i Visual Studio 2010 finns det några ytterligare steg som du behöver följa för att uppgradera till den senaste versionen av Entity Framework. Uppgradering är viktigt eftersom det ger dig åtkomst till en förbättrad API-yta, som är mycket enklare att använda samt de senaste felkorrigeringarna.
Först måste vi hämta den senaste versionen av Entity Framework från NuGet.
- Projekt–> Hantera NuGet-paket...Om du inte har alternativet Hantera NuGet-paket... bör du installera den senaste versionen av NuGet
- Välj fliken Online
- Välj EntityFramework-paketet
- Klicka på Installera
Därefter måste vi byta modell för att generera kod som använder DbContext-API:et, som introducerades i senare versioner av Entity Framework.
Högerklicka på en tom plats för din modell i EF Designer och välj Lägg till kodgenereringsobjekt...
Välj Onlinemallar på den vänstra menyn och sök efter DbContext
Välj EF 5.x DbContext Generator för C#, ange BloggingModel som namn och klicka på Lägg till
3. Generera databasen
Med vår modell kan Entity Framework beräkna ett databasschema som gör att vi kan lagra och hämta data med hjälp av modellen.
Databasservern som är installerad med Visual Studio skiljer sig beroende på vilken version av Visual Studio du har installerat:
- Om du använder Visual Studio 2010 skapar du en SQL Express-databas.
- Om du använder Visual Studio 2012 skapar du en LocalDB-databas .
Nu ska vi gå vidare och generera databasen.
Högerklicka på designytan och välj Generera databas från modell...
Klicka på Ny anslutning... och ange antingen LocalDB eller SQL Express, beroende på vilken version av Visual Studio du använder, ange ModelFirst.Blogging som databasnamn.
Välj OK så tillfrågas du om du vill skapa en ny databas och väljer Ja
Välj Nästa så beräknar Entity Framework Designer ett skript för att skapa databasschemat
När skriptet har visats klickar du på Slutför så läggs skriptet till i projektet och öppnas
Högerklicka på skriptet och välj Kör. Du uppmanas att ange databasen att ansluta till, ange LocalDB eller SQL Server Express, beroende på vilken version av Visual Studio du använder
4. Läsa och skriva data
Nu när vi har en modell är det dags att använda den för att komma åt vissa data. De klasser som vi ska använda för att komma åt data genereras automatiskt åt dig baserat på EDMX-filen.
Den här skärmbilden är från Visual Studio 2012, om du använder Visual Studio 2010 hamnar BloggingModel.tt och BloggingModel.Context.tt filer direkt under projektet i stället för kapslade under EDMX-filen.
Implementera main-metoden i Program.cs enligt nedan. Den här koden skapar en ny instans av kontexten och använder den sedan för att infoga en ny blogg. Sedan använder den en LINQ-fråga för att hämta alla bloggar från databasen som ordnas alfabetiskt efter Rubrik.
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();
}
}
}
Nu kan du köra programmet och testa det.
Enter a name for a new Blog: ADO.NET Blog
All blogs in the database:
ADO.NET Blog
Press any key to exit...
5. Hantera modelländringar
Nu är det dags att göra vissa ändringar i vår modell, när vi gör dessa ändringar måste vi också uppdatera databasschemat.
Vi börjar med att lägga till en ny användarentitet i vår modell.
Lägg till ett nytt användarentitetsnamn med Användarnamn som nyckelnamn och Sträng som egenskapstyp för nyckeln
Högerklicka på egenskapen Användarnamn på designytan och välj Egenskaper. I fönstret Egenskaper ändrar du inställningen MaxLength till 50Detta begränsar de data som kan lagras i användarnamn till 50 tecken
Lägg till en skalär egenskap för DisplayName i användarentiteten
Vi har nu en uppdaterad modell och vi är redo att uppdatera databasen så att den passar vår nya användarentitetstyp.
- Högerklicka på designytan och välj Generera databas från modell..., Entity Framework beräknar ett skript för att återskapa ett schema baserat på den uppdaterade modellen.
- Klicka på Slutför
- Du kan få varningar om att skriva över det befintliga DDL-skriptet och mappnings- och lagringsdelarna i modellen. Klicka på Ja för båda varningarna
- Det uppdaterade SQL-skriptet för att skapa databasen öppnas åt dig
Skriptet som genereras släpper alla befintliga tabeller och återskapar sedan schemat från grunden. Detta kan fungera för lokal utveckling, men det är inte möjligt att skicka ändringar till en databas som redan har distribuerats. Om du behöver publicera ändringar i en databas som redan har distribuerats måste du redigera skriptet eller använda ett schemajäxverktyg för att beräkna ett migreringsskript. - Högerklicka på skriptet och välj Kör. Du uppmanas att ange databasen att ansluta till, ange LocalDB eller SQL Server Express, beroende på vilken version av Visual Studio du använder
Sammanfattning
I den här genomgången tittade vi på Model First-utveckling, som gjorde det möjligt för oss att skapa en modell i EF Designer och sedan generera en databas från den modellen. Sedan använde vi modellen för att läsa och skriva data från databasen. Slutligen uppdaterade vi modellen och återskapade sedan databasschemat så att det matchar modellen.