.NET

Entity Framework Core gevorderd

Raw SQL, stored procedures, transacties, AsNoTracking, AsSplitQuery, query tags, interceptors, prestatie-tuning

25 gespreksvragen·
Mid-Level
1

Hoe voer je een ruwe SQL-query uit om entiteiten op te halen in EF Core?

Antwoord

De methode FromSql() of FromSqlRaw() maakt het mogelijk ruwe SQL-query's uit te voeren en daarbij entiteiten terug te geven die door de DbContext worden getrackt. Dit is handig in scenario's waarin LINQ de query niet rechtstreeks kan uitdrukken, zoals het aanroepen van stored procedures of tabelwaardefuncties. De resultaten kunnen vervolgens met LINQ worden samengesteld om filters toe te voegen of relaties op te nemen.

2

Wat is het verschil tussen FromSqlRaw() en ExecuteSqlRaw() in EF Core?

Antwoord

FromSqlRaw() wordt gebruikt om SELECT-query's uit te voeren die getrackte entiteiten teruggeven en samenstelling met LINQ mogelijk maken. ExecuteSqlRaw() wordt gebruikt om niet-query-commando's (INSERT, UPDATE, DELETE) uit te voeren en geeft het aantal getroffen rijen terug. FromSqlRaw() is van toepassing op een DbSet, terwijl ExecuteSqlRaw() van toepassing is op Database. Dit onderscheid waarborgt typeveiligheid en modelconsistentie.

3

Hoe roep je een stored procedure aan die entiteiten teruggeeft in EF Core?

Antwoord

Gebruik FromSqlRaw() of Database.SqlQuery<T>() om een stored procedure aan te roepen en de resultaten naar entiteiten te mappen. Het is cruciaal om na de aanroep AsEnumerable() toe te voegen om te voorkomen dat EF Core probeert te componeren op de resultaten van de stored procedure, wat SQL-syntaxisfouten zou veroorzaken. Parameters kunnen worden doorgegeven met de @p0, @p1-syntaxis om SQL-injectie te voorkomen.

4

Wat is de rol van AsNoTracking() in EF Core?

5

Wanneer gebruik je AsNoTrackingWithIdentityResolution() in plaats van AsNoTracking()?

+22 gespreksvragen

Beheers .NET voor je volgende gesprek

Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.

Begin gratis