Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Deze video en stapsgewijze handleiding bieden een inleiding tot Database First-ontwikkeling met behulp van Entity Framework. Met Database First kunt u een model reverse-engineeren vanuit een bestaande database. Het model wordt opgeslagen in een EDMX-bestand (.edmx-extensie) en kan worden bekeken en bewerkt in Entity Framework Designer. De klassen waarmee u in uw toepassing communiceert, worden automatisch gegenereerd op basis van het EDMX-bestand.
Bekijk de video
Deze video biedt een inleiding tot Database First-ontwikkeling met behulp van Entity Framework. Met Database First kunt u een model reverse-engineeren vanuit een bestaande database. Het model wordt opgeslagen in een EDMX-bestand (.edmx-extensie) en kan worden bekeken en bewerkt in Entity Framework Designer. De klassen waarmee u in uw toepassing communiceert, worden automatisch gegenereerd op basis van het EDMX-bestand.
Gepresenteerd door: Rowan Miller
Voorafgaande Vereisten
U moet ten minste Visual Studio 2010 of Visual Studio 2012 hebben geïnstalleerd om dit scenario te voltooien.
Als u Visual Studio 2010 gebruikt, moet NuGet ook zijn geïnstalleerd.
1. Een bestaande database maken
Wanneer u zich richt op een bestaande database, wordt deze doorgaans al gemaakt, maar voor dit scenario moeten we een database maken voor toegang.
De databaseserver die met Visual Studio is geïnstalleerd, is afhankelijk van de versie van Visual Studio die u hebt geïnstalleerd:
- Als u Visual Studio 2010 gebruikt, maakt u een SQL Express-database.
- Als u Visual Studio 2012 gebruikt, maakt u een LocalDB-database .
We gaan verder met het genereren van de database.
Visual Studio openen
Weergave -> Server Explorer
Klik met de rechtermuisknop op gegevensverbindingen -> Verbinding toevoegen...
Als u nog geen verbinding hebt gemaakt met een database vanuit Server Explorer voordat u Microsoft SQL Server als gegevensbron moet selecteren
Maak verbinding met LocalDB of SQL Express, afhankelijk van welke u hebt geïnstalleerd en voer DatabaseFirst.Blogging in als de databasenaam
Selecteer OK en u wordt gevraagd of u een nieuwe database wilt maken. Selecteer Ja
De nieuwe database wordt nu weergegeven in Server Explorer, klik er met de rechtermuisknop op en selecteer Nieuwe query
Kopieer de volgende SQL naar de nieuwe query en klik met de rechtermuisknop op de query en selecteer Uitvoeren
CREATE TABLE [dbo].[Blogs] (
[BlogId] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (200) NULL,
[Url] NVARCHAR (200) NULL,
CONSTRAINT [PK_dbo.Blogs] PRIMARY KEY CLUSTERED ([BlogId] ASC)
);
CREATE TABLE [dbo].[Posts] (
[PostId] INT IDENTITY (1, 1) NOT NULL,
[Title] NVARCHAR (200) NULL,
[Content] NTEXT NULL,
[BlogId] INT NOT NULL,
CONSTRAINT [PK_dbo.Posts] PRIMARY KEY CLUSTERED ([PostId] ASC),
CONSTRAINT [FK_dbo.Posts_dbo.Blogs_BlogId] FOREIGN KEY ([BlogId]) REFERENCES [dbo].[Blogs] ([BlogId]) ON DELETE CASCADE
);
2. De toepassing maken
Om het eenvoudig te houden, gaan we een eenvoudige consoletoepassing bouwen die gebruikmaakt van de Database First om gegevenstoegang uit te voeren:
- Visual Studio openen
- Bestand -> Nieuw -> Project...
- Selecteer Windows in het linkermenu en consoletoepassing
- Voer DatabaseFirstSample in als de naam
- Kies OK.
3. Reverse-engineermodel
We gaan gebruikmaken van Entity Framework Designer, dat deel uitmaakt van Visual Studio, om ons model te maken.
Project -> Nieuw item toevoegen...
Selecteer Gegevens in het linkermenu en ADO.NET Entiteitsgegevensmodel
Voer BloggingModel in als de naam en klik op OK
Hiermee wordt de Entiteitsgegevensmodelwizard gestart
Selecteer Genereren uit database en klik op Volgende
Selecteer de verbinding met de database die u in de eerste sectie hebt gemaakt, voer BloggingContext in als de naam van de verbindingsreeks en klik op Volgende
Klik op het selectievakje naast Tabellen om alle tabellen te importeren en klik op Voltooien
Zodra het reverse-engineerproces is voltooid, wordt het nieuwe model toegevoegd aan uw project en geopend zodat u het kunt bekijken in entity framework designer. Er is ook een App.config-bestand aan uw project toegevoegd met de verbindingsgegevens voor de database.
Aanvullende stappen in Visual Studio 2010
Als u in Visual Studio 2010 werkt, zijn er enkele extra stappen die u moet volgen om een upgrade uit te voeren naar de nieuwste versie van Entity Framework. Upgraden is belangrijk omdat u toegang krijgt tot een verbeterd API-oppervlak, dat veel eenvoudiger te gebruiken is, evenals de meest recente oplossingen voor fouten.
Eerst moeten we de nieuwste versie van Entity Framework downloaden van NuGet.
- Project–> NuGet-pakketten beheren...Als u de optie NuGet-pakketten beheren niet hebt, moet u de nieuwste versie van NuGet installeren
- Het tabblad Online selecteren
- Selecteer het EntityFramework-pakket
- Klik op Installeren
Vervolgens moeten we ons model omwisselen om code te genereren die gebruikmaakt van de DbContext-API, die is geïntroduceerd in latere versies van Entity Framework.
Klik met de rechtermuisknop op een lege plek van uw model in de EF Designer en selecteer Item voor het genereren van code toevoegen...
Selecteer Onlinesjablonen in het linkermenu en zoek naar DbContext
Selecteer de EF 5.x DbContext Generator voor C#, voer BloggingModel in als de naam en klik op Toevoegen
4. Gegevens lezen en schrijven
Nu we een model hebben, is het tijd om het te gebruiken om toegang te krijgen tot bepaalde gegevens. De klassen die we gaan gebruiken voor toegang tot gegevens, worden automatisch voor u gegenereerd op basis van het EDMX-bestand.
Deze schermafbeelding is afkomstig van Visual Studio 2012, als u Visual Studio 2010 gebruikt, worden de BloggingModel.tt- en BloggingModel.Context.tt-bestanden direct onder uw project in plaats van genest onder het EDMX-bestand.
Implementeer de Main-methode in Program.cs zoals hieronder wordt weergegeven. Deze code maakt een nieuw exemplaar van onze context en gebruikt deze vervolgens om een nieuw blog in te voegen. Vervolgens wordt een LINQ-query gebruikt om alle blogs uit de database alfabetisch op titel op te halen.
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();
}
}
}
U kunt de toepassing nu uitvoeren en testen.
Enter a name for a new Blog: ADO.NET Blog
All blogs in the database:
ADO.NET Blog
Press any key to exit...
5. Omgaan met databasewijzigingen
Nu is het tijd om enkele wijzigingen aan te brengen in ons databaseschema, wanneer we deze wijzigingen aanbrengen, moeten we ons model ook bijwerken om deze wijzigingen weer te geven.
De eerste stap is het aanbrengen van enkele wijzigingen in het databaseschema. We gaan een tabel Gebruikers toevoegen aan het schema.
- Klik met de rechtermuisknop op de DatabaseFirst.Blogging-database in Server Explorer en selecteer Nieuwe query
- Kopieer de volgende SQL naar de nieuwe query en klik met de rechtermuisknop op de query en selecteer Uitvoeren
CREATE TABLE [dbo].[Users]
(
[Username] NVARCHAR(50) NOT NULL PRIMARY KEY,
[DisplayName] NVARCHAR(MAX) NULL
)
Nu het schema is bijgewerkt, is het tijd om het model bij te werken met deze wijzigingen.
Klik met de rechtermuisknop op een lege plek van uw model in de EF Designer en selecteer 'Model bijwerken uit database...'. Hiermee wordt de wizard Bijwerken gestart
Schakel op het tabblad Toevoegen van de wizard Bijwerken het selectievakje naast Tabellen in. Dit geeft aan dat we nieuwe tabellen uit het schema willen toevoegen. Op het tabblad Vernieuwen worden bestaande tabellen in het model weergegeven die tijdens de update worden gecontroleerd op wijzigingen. Op de tabbladen Verwijderen worden tabellen weergegeven die uit het schema zijn verwijderd en die ook uit het model worden verwijderd als onderdeel van de update. De informatie op deze twee tabbladen wordt automatisch gedetecteerd en wordt alleen ter informatie verstrekt. U kunt geen instellingen wijzigen.
Klik op Voltooien in de Bijwerken-wizard
Het model is nu bijgewerkt met een nieuwe gebruikersentiteit die is toegewezen aan de tabel Gebruikers die we hebben toegevoegd aan de database.
Overzicht
In dit scenario hebben we gekeken naar Database First-ontwikkeling, waardoor we een model konden maken in EF Designer op basis van een bestaande database. Vervolgens hebben we dat model gebruikt om enkele gegevens uit de database te lezen en te schrijven. Ten slotte hebben we het model bijgewerkt met wijzigingen die we in het databaseschema hebben aangebracht.