.NET

Entity Framework Core avancé

Raw SQL, stored procedures, transactions, AsNoTracking, AsSplitQuery, query tags, interceptors, performance tuning

25 questions d'entretien·
Confirmé
1

Comment exécuter une requête SQL brute pour récupérer des entités en EF Core ?

Réponse

La méthode FromSql() ou FromSqlRaw() permet d'exécuter des requêtes SQL brutes tout en retournant des entités trackées par le DbContext. Cela est utile pour les scénarios où LINQ ne peut pas exprimer la requête directement, comme l'appel de procédures stockées ou de fonctions table. Les résultats peuvent ensuite être composés avec LINQ pour ajouter des filtres ou inclure des relations.

2

Quelle est la différence entre FromSqlRaw() et ExecuteSqlRaw() en EF Core ?

Réponse

FromSqlRaw() est utilisé pour exécuter des requêtes SELECT qui retournent des entités trackées, permettant la composition avec LINQ. ExecuteSqlRaw() est utilisé pour exécuter des commandes non-query (INSERT, UPDATE, DELETE) et retourne le nombre de lignes affectées. FromSqlRaw() s'applique sur un DbSet, tandis que ExecuteSqlRaw() s'applique sur Database. Cette distinction garantit la sécurité de type et la cohérence du modèle.

3

Comment appeler une procédure stockée qui retourne des entités en EF Core ?

Réponse

Utiliser FromSqlRaw() ou Database.SqlQuery<T>() pour appeler une procédure stockée et mapper les résultats vers des entités. Il est crucial d'ajouter AsEnumerable() après l'appel pour éviter que EF Core tente de composer sur la procédure stockée, ce qui provoquerait des erreurs de syntaxe SQL. Les paramètres peuvent être passés en utilisant la syntaxe @p0, @p1 pour éviter les injections SQL.

4

Quel est le rôle de AsNoTracking() en EF Core ?

5

Quand utiliser AsNoTrackingWithIdentityResolution() plutôt que AsNoTracking() ?

+22 questions d'entretien

Maîtrise .NET pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement