41 messaggi dal 26 febbraio 2001
Ciao,
non riesco a fare in modo che la mia applicazione legga i dati da 2 DB diversi.
Ho utilzzato EntityFramework DBFirst e fatto creare i modelli ed i Context in automatico
tramite il comando

ef dbcontext scaffold "stringa di connessione" Microsoft.EntityFrameworkCore.SqlServer --output-dir=DBModels 


I Context sono creati correttamente,
in ConfigureServices leggo da appsettings.json le stringhe di connessione e le assegno in questo modo

public void ConfigureServices(IServiceCollection services)
        { ......
            var connection = Configuration.GetConnectionString("AuDataDB");
            services.AddDbContext<AuDataDEVContext>(options => options.UseSqlServer(connection));
            connection = Configuration.GetConnectionString("AnaDataDB");
            services.AddDbContext<ANA90FEDContext>(options => options.UseSqlServer(connection));
}


Quando però nel controller uso il primo Context (AuDataDEVContext) ,

public class PersonaController : Controller
    {
        private readonly AuDataDEVContext _context;

        public PersonaController(AuDataDEVContext context)
        {
            _context = context;
        }

        // GET: Persona
        public async Task<IActionResult> Index()
        {
               return View(await _context.Persona.ToListAsync());
        }
}


se vado ad ispezionare il _context vedo che la stringa di connessione è quella relativa
al secondo Context (ANA90FEDContext) e quindi la chiamata await _context.Persona.ToListAsync()
in quanto nel DB non esiste la tabella Persona

Come devo fare per utilizzare context diversi legati a db diversi ?
181 messaggi dal 10 agosto 2019
per primo userei due variabili (tanto sono gratis :-) )
da questo
var connection = Configuration.GetConnectionString("AuDataDB");
            services.AddDbContext<AuDataDEVContext>(options => options.UseSqlServer(connection));
            connection = Configuration.GetConnectionString("AnaDataDB");
            services.AddDbContext<ANA90FEDContext>(options => options.UseSqlServer(connection));


passerei a questo :

var connection = Configuration.GetConnectionString("AuDataDB");
            services.AddDbContext<AuDataDEVContext>(options => options.UseSqlServer(connection));
        var connection1 = Configuration.GetConnectionString("AnaDataDB");
            services.AddDbContext<ANA90FEDContext>(options => options.UseSqlServer(connection1));


fai il debug in startup passo passo per vedere se vengono caricati i valori giusti,ciao
41 messaggi dal 26 febbraio 2001
Ma sai che hai ragione, credevo non potesse essere quello, invece funziona !
Grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.