6 messaggi dal 18 febbraio 2011
Salve,
mi sto approcciando adesso al mondo di asp.net MVC ed avrei questo quesito: fino ad ora avevo impostato una singola connessione tramite entity framework e la utilizzavo in questo modo:
            DB2014Context db = new DB2014Context();
            using (db)
            {
                var query = (from a in db.AZIENDA
                              orderby a.NOMEAZIENDA
                             select a).ToList();


Adesso però sorge una nuova esigenza: selezionare un db a seconda del parametro "Anno" passato.
Sono 4 db, tutti con uguale struttura, ma che si riferiscono ad anni differenti, ed io vorrei qualcosa tipo: seleziona l'anno da una select ed utilizza il relativo db.
Qual è il giusto approccio? Avete degli esempi da propormi?
Grazie.
10.078 messaggi dal 09 febbraio 2002
Contributi
Ciao,
la tua classe DB2014Context potrebbe essere usata per tutti i database, dato che la loro struttura è identica. Potresti fargli accettare un parametro nel costruttore che indica l'anno, e poi si costruisce la connection string in base a quello.

Inoltre, rinominalo. DB2014Context è legato ad un anno specifico (il 2014), trova un nome che sia più generico.

Ad esempio:
public class MioDbContext : DbContext {
  public MioDbContext(int anno) : base ($"Data Source=nome\\istanza; Initial Catalog=DbAnno{anno}; ...") {
  }
}


Il DbContext ha appunto un costruttore che accetta una connection string (o il nome di una connection string che deve trovarsi nel web.config). Nell'uno o nell'altro modo la puoi parametrizzare in base all'anno.

ciao,
Moreno

Alla Microsoft House di Milano, il 27-28 giugno si parla di accessibilità: eventi, workshop e un hackathon di 2 giorni!
Info e iscrizioni su https://aka.ms/mscomm

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.