Una delle mancanze di Entity Framework Core, fino alla versione 2.2, rispetto a Entity Framework 6 è l'impossibilità di intercettare l'esecuzione di comandi SQL: interception. Con Entity Framework 3 è stata aggiunta questa funzionalità che ci permette quindi di eseguire operazioni subito prima e subito dopo l'esecuzione di un comando SQL.
Questa funzionalità torna molto utile quando dobbiamo personalizzare la stringa di connessione (come vedremo in un prossimo script), quando dobbiamo misurare i tempi di esecuzione di un comando o anche quando vogliamo bypassare l'esecuzione di una query o modificarne il testo.
Per creare un interceptor che agisca prima e dopo l'esecuzione di un comando SQL, dobbiamo creare una classe che eredita da DbCommandInterceptor ed eseguire l'override di uno dei metodi di lettura come ReaderExecuting, ReaderExecuted, NonQueryExecuting, NonQueryExecuted, CommandCreated solo per nominarne alcuni.
Prendiamo come esempio il metodo ReaderExecuting.
public class MyCommandInterceptor : DbCommandInterceptor { public override InterceptionResult ReaderExecuting( DbCommand command, CommandEventData eventData, InterceptionResult result) { Console.WriteLine("ExecutingQuery: command.CommandText") return result; } }
In questo caso stiamo semplicemente loggando una chiamata al database scrivendo a console il codice SQL, ma possiamo eseguire qualunque operazione di cui abbiamo bisogno.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare una libreria CSS universale: Cards
Miglioramenti agli screen reader e al contrasto in Angular
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Eseguire i worklow di GitHub su runner potenziati
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Creare alias per tipi generici e tuple in C#
Utilizzare Tailwind CSS all'interno di React: installazione
I più letti di oggi
- Webcast 'Architettura del software: introduzione ai design pattern'
- Clonare un oggetto in .NET con la libreria JSON.NET
- Autenticazione con JWT Token e ASP.NET Core Web API
- Commentare una issue associata ad una pull request tramite un workflow di GitHub
- per i prossimi 2 giorni segui con noi #build15 da San Francisco: https://aspit.co/build15 #vs2015 #windows10
- Trasformare un feed RSS in HTML con XMLDom
- Microsoft Security Bulletin MS02-018
- Utilizare la libreria subsink per eliminare le sottoscrizioni agli observable in Angular
- Aggiungere il controllo TabView come Microsoft Edge nella Universal Windows Platform
- Microsoft Security Bulletin MS02-043