4 messaggi dal 20 settembre 2010
Ciao a tutti,
ho la necessita causa posizionamento applicazioni in hosting, di poter cambiare facilmente lo schema del db nel model EF6.
creando il model da visual studio 2015 viene riportato e compilato lo schema che utilizzo nel db di sviluppo.
quando pubblico la soluzione però dovrei usare uno schema diverso per ogni piattaforma in cui la pubblico.
non riesco a venirne a capo !
non riesco ad intercettare ed a sovrascrivere l'onmodelcreating in cui potrei sostituire lo schema
questo è quello che viene generato di default da visual studio
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}


lo sostituirei con
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema("mioschema");
}


ma non viene mai richiamato
grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
dunque, sappiamo che l'override di OnModelCreating viene invocato da Entity Framework la prima volta che deve accedere al database, quindi in corrispondenza della prima query o comando dall'avvio dell'applicazione.

Tu dici invece che "non viene mai richiamato". L'hai verificato mettendo un breakpoint? Si sta verificando la UnintentionalCodeFirstException oppure non succede nulla?

Se non succede nulla, sei sicuro che stai usando un'istanza di quel DbContext per inviare le tue query? E non magari un altro contesto generato da un altro template T4?

Anziché usare il designer, hai provato l'altra modalità di reverse egineering del database? Si chiama "Code first from database" (anziché "EF designer from database) e ti viene proposta quando aggiungi un "ADO.NET Entity Data Model" nel tuo progetto.
Lo vedi in questa immagine.
Il vantaggio è che la generazione del codice non è basata su template T4 e quindi potrai apportare modifiche senza paura che ti vengano inavvertitamente sovrascritte.

ciao,
Moreno
Modificato da BrightSoul il 02 febbraio 2016 21.55 -

Enjoy learning and just keep making

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.