Il nuovo DataControl SqlDataSource è stato progettato, contrariamente a quanto il nome potrebbe far pensare, per funzionare con più database e non solo con SQL Server.
A rendere intercambiabile la base dati è l'adozione del modello a Provider, abbinato all'utilizzo del Pattern Factory da parte del controllo SqlDataSource.
I provider utilizzabili con il control SqlDataSource sono dichiarati nel machine.config e possono essere aggiunti o rimossi sfruttando l'architettura di configurazione di ASP.NET, nel web.config.
Per enumerare a runtime tutti i provider installati è sufficiente eseguire il seguente script.
DataTable dt = System.Data.Common.DbProviderFactories.GetFactoryClasses(); foreach (DataRow d in dt.Rows) { Response.Write(d[0].ToString() + "<br />"); }
Il metodo GetFactoryClasses restituisce un DataTable dove le colonne contengono rispettivamente il nome del provider, la descrizione, il nome utilizzato programmaticamente per fare riferimento al provider ed infine nell'ultima colonna il Fully-qualified name della classe.
Approfondimenti
#805 Codice indipendente dal database con il ProviderFactory di ADO.NET 2.0
https://www.aspitalia.com/script/805/Codice-indipendente-database-ProviderFactory-ADO.NET-2.0.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Short-circuiting della Pipeline in ASP.NET Core
Load test di ASP.NET Core con k6
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Implementare il throttling in ASP.NET Core
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Eseguire una query su SQL Azure tramite un workflow di GitHub
I più letti di oggi
- Miglioramenti nelle performance di Angular 16
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- HTML5 con CSS e JavaScript
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Ottimizzazione dei block template in Angular 17
- Disabilitare automaticamente un workflow di GitHub (parte 2)