Sto scrivendo un sistema di gestione stipendi che si integrerà con un sistema preesistente. Il sistema originale aveva un database master che gestiva la gestione degli utenti e alcune configurazioni globali, al di sotto del numero di database identici per struttura, fondamentalmente ogni database è un database delle paghe delle aziende, tutti questi sono legati al database principale perché appartiene a un genitore società che ha molte filiali ciascuna con il proprio reparto risorse umane.Utilizzo di framework entità su più database
Quello che mi chiedevo è se c'è un modo che posso, basato su un cookie o un altro metodo che memorizza a quale azienda si desidera connettersi, modificare dinamicamente il database di destinazione dei framework di entità in base al loro input utilizzando un filtro ?
Ecco un esempio:
utente A accede al sito, caricamento della pagina con le aziende disponibili che l'utente ha il permesso di accesso, l'utente sarà quindi selezionare una società, che hanno privilegi di amministratore in tale società, aggiungono un dipendente, prima che l'azione venga eseguita, asp.net cambierà la stringa di connessione nel database appropriato, quindi aggiungerà il record.
Al massimo si finisce con 2 contesti, o ci sono alcune soluzioni ma molto meno pratico e EF6 si prevede di supportare più Banca dati. Puoi verificare la versione beta, nel momento in cui la tua app sarà pronta, verrà rilasciato EF6. Ma tutti i DB fanno parte di un'organizzazione, quindi unendoli con una chiave esterna aggiuntiva per CompanyID creerà un DB e renderà più semplici i rapporti. –
Ah, vedo, il problema è che la persona che ha creato il primo sistema di gestione stipendi è molto risoluto sul fatto che manteniamo la struttura del database la stessa, dice che è così che le aziende saranno più disposte ad aggiornare a una versione più recente se non lo fanno " t necessario eseguire migrazioni di database. – ChaoticLoki
Beh, è un incubo di manutenzione, non sarai in grado di eseguire query db incrociate con join. Non sono sicuro di EF6 ma puoi controllare su codeplex. –