Entity Framework Flashcards

1
Q

Hvad er immediate execution?

A

Det modsatte af deferred execution.

Når man forespørger noget fra databasen, så hentes data med det samme og ikke først når der laves kald til attributter. Immediate execution kan implementeres ved fx at bruge ToArray()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Hvad er deferred execution?

A

Det modsatte af immediate execution.

Her bliver data først hentet når der bliver lavet kald på attributterne. Deferred betyder også ‘at udskyde’. Man udskyder altså indhentningen af data til det skal bruges.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hvad sker der her?

Program 11
A

Dette eksempel udfører en LINQ-forespørgsel, der laver en join mellem ‘people’ og ‘firmas’. Denne forespørgsel henter navnene på personer og navnene på de virksomheder, de er ansat i.

ChatGPT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Hvad er eager loading?

A

Eager loading er når at man henter objekter op som man refererer til samtidig med at man henter det forespurgte objekt. Til det formål bruges ‘include()’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hvad sker der her?

Program 11
A

Dette eksempel tillader brugeren at ansætte en person i en virksomhed ved at indtaste CPR-nummeret og virksomhedens nummer. Derefter opdateres ændringerne i databasen med DB.SaveChanges()

ChatGPT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hvad sker der her?

A

.Select(g => new { postnr = g.Key, Count = g.Count() }): Her opretter vi et nyt objekt for hver postnummergruppe. Vi vælger nøglen (postnr) som ‘postnr’ og antallet af firmaer i gruppen som ‘Count’. Denne transformation resulterer i en sekvens af anonyme objekter.

.ToList(): Dette konverterer resultatet til en liste, så vi nemt kan iterere over det.

foreach (var item in companyGroups): Vi itererer derefter gennem den oprettede liste af anonyme objekter og udskriver postnummeret og antallet af firmaer i den pågældende postnummergruppe.

ChatGPT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Hvad sker der her?

A

Tre forskellige måder at lave en update. Hvor den første og den anden er nemmest at udføre.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Kan du forklare hvad pointen er med de 4 eksempler fra program 10?

A

1.
Meget Objektorienteret Løsning:

Fordele: Kort og letlæselig kode. Udnytter objektorienteret programmering.
Ulemper: Kan medføre flere databasekald, hvilket kan påvirke ydeevnen.

2.
Løsning Baseret på Samlet Query:

Fordele: Reducerer antallet af databasekald og kan forbedre ydeevnen. Kompakt forespørgsel.
Ulemper: Mindre objektorienteret og kan være mindre læsevenlig med komplekse forespørgsler.

3.
Objektorienteret Løsning med Include:

Fordele: Reducerer antallet af databasekald ved at indlæse relaterede data. Bevarer objektorienteret tilgang.
Ulemper: Kan stadig medføre flere databasekald, især hvis der er mange relaterede data.

4.
Løsning Baseret på using:

Fordele: Sikrer, at forbindelsen lukkes korrekt. Minimerer risikoen for lækager af forbindelser eller udtømning af cache.
Ulemper: Afhænger af, at using-blokken administreres korrekt. Kan kræve mere kompleks kodestruktur.

ChatGPT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly