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.

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.

Zie ook: Data filteren met behulp van Entity Framework


Andere blogartikelen

  • Het gebruik van een Photoslider

    Geschreven door: op maandag 7 oktober 2019

    Ze zijn er in alle soorten en maten en staan meestal bovenaan een websitepagina. Dan heb ik het natuurlijk over photosliders. Zo bent u vast bekend met de traditionele foto die langzaam vervaagd en wa ...

    Bekijk het artikel »
  • De Controversie van AMP (Accelerated Mobile Pages)

    Geschreven door: op maandag 30 september 2019

    Er heerst al controversie rondom AMP (Accelerated Mobile Pages) sinds Google dit onderwerp heeft ingevoerd! In deze blog duiken we verder in deze controversie en ontdekken we of deze controversie tere ...

    Bekijk het artikel »
  • CSS attribuut font-display

    Geschreven door: op maandag 30 september 2019

    De snelheid van je website is belangrijk. Niet alleen omdat Google je website hierdoor hoger rankt maar ook omdat het gebruiksvriendelijker is voor de bezoekers. Als een website traag laadt, ben je ee ...

    Bekijk het artikel »
Bel 072 5345 888
Onze Middelen en Technologieën
microsoft silver partner
Adobe partner
fd-gazellen-2018.jpg
Google analytics
partners-logo.jpg
Op de hoogte blijven?

Meld u aan voor de gratis nieuwsbrief om op de hoogte te blijven van onze activiteiten