Entity Framework
Entity framework (EF) is een framework voor dotnet welke developers helpt met de connectie naar een database. Dotnet is een programma dat het functionele deel van de website verzorgd. Een belangrijk onderdeel hiervan is het ophalen van de benodigde gegevens wanneer een gebruiker een pagina opvraagt. Deze gegevens staan meestal opgeslagen in een database. Voor interactie met de database wordt de SQL programmeer taal gebruikt. Dotnet draait echter in C# en kan niet rechtstreeks met de database communiceren. Hiervoor is entity framework bedacht welke het mogelijk maakt om C# code om te zetten naar SQL en de opgehaalde gegevens vervolgens bruikbaar te maken in dotnet.
Mapping
Een database bestaat uit verschillende tabellen waarin gegevens zijn opgeslagen. Dotnet werkt met âmodelsâ, een soort wrapper waarin gegevens worden bijgehouden. Entity framework zorgt voor een koppeling tussen deze tabellen en models. Gegevens worden uit de tabel gehaald en in een model gestop zodat deze bruikbaar zijn in dotnet. Omgekeerd kan overigens ook. De gegevens die op dat moment in het model staan worden dan opgeslagen in de tabel. Zie figuur 1 en 2 voor een voorbeeld van een tabel.
Figuur 1 - Visuele weergave van een simpele tabel. In deze tabel worden een id (een uniek nummer) en een naam bijgehouden. | Figuur 2 - Visuele weergave van gegevens in de tabel van figuur 1. |
Het aanmaken van deze tabel is gedaan doormiddel van SQL (figuur 3). Vervolgens kan in C# een model gemaakt worden dat bij deze tabel hoort (figuur 4).
CREATE TABLE [dbo].ExampleTable
(
[Id] INT NOT NULL PRIMARY KEY,
[Name] NVARCHAR(50) NOT NULL
)
Figuur 3 - SQL code voor het aanmaken van de tabel zoals te zien in Figuur 1
public class ExampleTable
{
public int Id { get; set; }
public string Name { get; set; }
}
Figuur 4 - C# code voor een model die bij de tabel van figuur 3 hoort
Nadat de tabel en het model zijn aangemaakt is het mogelijk om gegevens op te halen. In Figuur 5 is te zien hoe via SQL gegevens uit een tabel kunnen worden opgehaald. Dit geeft de gegevens terug zoals deze in figuur 2 te zien zijn. In Figuur 6 wordt hetzelfde gedaan maar dan in C#. Doormiddel van Entity Framework wordt deze aanroep omgezet naar SQL die vergelijkbaar is aan Figuur 5. Hierbij wordt het model gevuld met gegevens welke vervolgens bruikbaar zijn in dotnet. (Technisch gezien wordt er een lijst met models terug gegeven, een per gegevens regel in de Tabel.)
SELECT * FROM ExampleTable
Figuur 5 - SQL code voor het ophalen van alle gegevens uit de ExampleTable tabel
Database.ExampleTable.Tolist();
Figuur 6 - C# code voor het ophalen van alle gegevens uit de ExampleTable
Voordat er gegevens opgehaald kunnen worden, moeten deze echter eerst worden opgeslagen in de tabel. Ook dit is mogelijk met een soortgelijke aanroep, zie Figuur 7 en 8.
INSERT INTO ExampleTable (Id, Name)
VALUES (1, âBaukeâ)
Figuur 7 - SQL voor het toevoegen van een nieuwe gegevens rij aan de ExampleTable
ExampleTable exampleTable = new ExampleTable
{
Id = 1,
Name = "Bauke"
};
Database.ExampleTables.Add(exampleTable);
Database.SaveChanges();
Figuur 8 - C# Code voor het aanmaken van een model met gegevens voor de ExampleTable. Vervolgens wordt dit model opgeslagen in de database.
Dit is de basis van Entity framework, het opslaan en ophalen van data. Hierbij bestaan echter nog vele opties zoals het filteren van de gegevens of het samenvoegen van gegevens uit verschillende tabellen. Deze onderwerpen zullen worden behandeld in een later blog.