Con l'arrivo di Entity Framework Core 1.0 è stata aggiunta la possibilità di salvare i dati su più database in modo molto semplice.
Supponiamo di avere una classe Context così composta:
public class Context : DbContext { public Context() { } public Context(DbContextOptions options) : base(options) { } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) optionsBuilder.UseSqlite("Filename=MyDB.db"); } }
Siamo quindi andati a creare un override del costruttore che accetta una serie di parametri e va a richiamare il costruttore della classe base DbContext, che possiamo poi sfruttare a runtime.
All'interno del metodo OnConfiguring invece, siamo andati ad impostare il database come SQLite, solo se non è già stato configurato alternativamente, attraverso le opzioni che ci arrivano come parametro.
var connectionString = ConfigurationManager.ConnectionStrings["AltroDatabase"].ConnectionString; var builder = new DbContextOptionsBuilder(); builder.UseSqlServer(connectionString); var options = builder.Options; using (var db = new Context(options)) { // ... }
In questo modo abbiamo recuperato la stringa di connessione del database secondario, stiamo sfruttando la stessa classe Context (che quindi sfrutta lo stesso identico modello), per salvare i dati sia su un database di tipo SQLite, che su un database remoto di un altro tipo (in questo caso SQL Server).
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare Azure AI Studio per testare i modelli AI
Creare una libreria CSS universale: Immagini
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Il nuovo controllo Range di Blazor 9
Collegare applicazioni server e client con .NET Aspire
Filtering sulle colonne in una QuickGrid di Blazor
Effettuare il binding di date in Blazor
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Path addizionali per gli asset in ASP.NET Core MVC
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Gestire il colore CSS con HWB
I più letti di oggi
- Implementare l'infinite scroll con QuickGrid in Blazor Server
- #vs2017 sarà rilasciato il 07/03, in concomitanza con i suoi 20 anni https://aspit.co/bfn
- Ondata di novità per Windows Azure
- Novità per Win CE: .NET compact framework e SQL Server CE 2.0
- Presentata la nuova versione di C#
- Microsoft Security Bulletin MS05-013
- Rilasciato SQL Server 2005 in italiano
- Per la settimana prossima la beta1 del primo Service Pack di VS 2005
- SSL Certificates for everyone on Azure
- Repository con code-first di Entity Framework