Il runtime di LINQ To SQL è in grado di generare dinamicamente le query di aggiornamento esaminando le modifiche fatte agli oggetti recuperati dal database.
Tuttavia, a volte questo non basta in quanto all'aggiornamento di una determinata tabella si dovrebbero aggiornare anche dati in un'altra. L'esempio più classico è quando si vogliono loggare determinate operazioni fatte dall'utente. Per fare questo, un trigger non sempre è la via percorribile e quindi si deve ricorrere al codice.
LINQ To SQL permette di inviare al server comandi SQL dinamici tramite il metodo ExecuteCommand della classe DataContext.
using (DataContext ctx = new DataContext(connString)) { ctx.ExecuteCommand("INSERT INTO log (iduser, action) " + "VALUES ({0}, {1})", iduser, action); }
Come si vede dal codice, le query possono utilizzare parametri, ma con una sintassi diversa da quella utilizzata con gli oggetti di ADO.NET. La sintassi ricalca quella del metodo String.Format, ma, a differenza di questo, LINQ To SQL non effettua un semplice replace delle stringhe, bensì genera dei parametri per evitare problemi di SQL Injection.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- C# 4
- Spaziatura tra i caratteri in Silverlight 5
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Segui in tempo reale il TechEd 2004
- da oggi è possibile fare login velocemente con LinkedIn e Google. a questi si aggiunge il supporto già attivo per Facebook, Twitter, Microsoft Account, Windows Hello e OpenID, per darvi sempre più possibilità di accedere semplicemente alla nostra community! #aspitalia
- Migrare una service connection a workload identity federation in Azure DevOps
- Evitare postback multipli in un UpdatePanel