.NET

Entity Framework Core avanzato

Raw SQL, stored procedures, transazioni, AsNoTracking, AsSplitQuery, query tags, interceptors, ottimizzazione delle prestazioni

25 domande da colloquio·
Mid-Level
1

Come eseguire una query SQL grezza per recuperare entità in EF Core?

Risposta

Il metodo FromSql() o FromSqlRaw() consente di eseguire query SQL grezze restituendo entità tracciate dal DbContext. Questo è utile negli scenari in cui LINQ non può esprimere la query direttamente, come la chiamata di stored procedures o funzioni con valori di tabella. I risultati possono quindi essere composti con LINQ per aggiungere filtri o includere relazioni.

2

Qual è la differenza tra FromSqlRaw() ed ExecuteSqlRaw() in EF Core?

Risposta

FromSqlRaw() viene utilizzato per eseguire query SELECT che restituiscono entità tracciate, consentendo la composizione con LINQ. ExecuteSqlRaw() viene utilizzato per eseguire comandi non-query (INSERT, UPDATE, DELETE) e restituisce il numero di righe interessate. FromSqlRaw() si applica a un DbSet, mentre ExecuteSqlRaw() si applica a Database. Questa distinzione garantisce la sicurezza dei tipi e la coerenza del modello.

3

Come chiamare uno stored procedure che restituisce entità in EF Core?

Risposta

Usa FromSqlRaw() o Database.SqlQuery<T>() per chiamare uno stored procedure e mappare i risultati su entità. È fondamentale aggiungere AsEnumerable() dopo la chiamata per impedire a EF Core di tentare di comporre sui risultati dello stored procedure, il che causerebbe errori di sintassi SQL. I parametri possono essere passati usando la sintassi @p0, @p1 per prevenire l'iniezione SQL.

4

Qual è il ruolo di AsNoTracking() in EF Core?

5

Quando usare AsNoTrackingWithIdentityResolution() invece di AsNoTracking()?

+22 domande da colloquio

Padroneggia .NET per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis