/ / Codice EF5Primo nome dello schema: entità-quadro, entità-quadro-5

Codice EF5Primo nome dello schema: entità-quadro, entità-quadro-5

Sto sviluppando questa applicazione dove devoleggere i dati da più tabelle (tutte con lo stesso struture) in più schemi (definiti in fase di esecuzione). Usando il framework di entità 5 con il primo approccio al codice, ho bisogno di un modo per cambiare il nome dello schema dell'entità. Al momento sto creando il mio DbContext usando un costruttore con due parametri, un DbConnection e il nome dello schema (che uso nell'OnModelCreating sottoposto a override).

La prima volta creo il DbContext tuttofunziona bene e sono in grado di ottenere i dati. Ma quando creo un nuovo DbContext con un secondo nome schema, il DbConnection utilizzato da DbContext è quello passato nel costrutto ma il nome dello schema nell'entità rimane essere il primo dal momento che OnModelCreating non viene chiamato anche se sto creando una nuova istanza di DbContext.

Qualche ideologia? Grazie

Modifica: non penso che importi, ma sto usando un database Oracle.

risposte:

0 per risposta № 1

È possibile eseguire questa operazione creando un utente di SQL Server per schema (con il set di schemi predefinito) e più stringhe di connessione.

Nell'applicazione, creare una stringa di connessione per utente (schema). Aggiungi un costruttore dbcontext che accetta una stringa di connessione quindi passa la stringa di connessione appropriata al costruttore.


0 per risposta № 2

Potresti riuscire a fare qualcosa fornendo un inizializzatore del database personalizzato (IDatabaseInitializer e Database.SetInitializer (new YouCustomInitializer ());)