
Entity Framework Core avancé
Raw SQL, stored procedures, transactions, AsNoTracking, AsSplitQuery, query tags, interceptors, performance tuning
1Comment exécuter une requête SQL brute pour récupérer des entités en EF Core ?
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.
2Quelle est la différence entre FromSqlRaw() et ExecuteSqlRaw() en EF Core ?
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.
3Comment appeler une procédure stockée qui retourne des entités en EF Core ?
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.
Quel est le rôle de AsNoTracking() en EF Core ?
Quand utiliser AsNoTrackingWithIdentityResolution() plutôt que AsNoTracking() ?
+22 questions d'entretien
Autres sujets d'entretien .NET
Les bases de C#
LINQ & Delegates
Essentiels du langage C#
Fondamentaux ASP.NET Core
Cycle de vie des requêtes ASP.NET Core
Configuration & Settings
Cycle de vie de l'application
Dependency Injection
Entity Framework Core
Minimal APIs
Développement Web API
Async côté ASP.NET Core
Authentication & Authorization
HttpClient & Networking
Sérialisation JSON
Fonctionnalités avancées C#
Clean Architecture
Logging, Monitoring & Observability
Tests unitaires & xUnit
Tests d'intégration
Docker & Containerization
NuGet Package Management
Memory Management & GC
Programmation réactive
Async/await & Patterns
.NET Design Patterns
Optimisation des performances
Sécurité & Best Practices
SignalR & Real-time
Architecture Microservices
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