5

Ho cercato ma non ho trovato molto su questo argomento. Qualcuno ha visto un "ordine di operazioni" conciso per DBContext, inclusi elementi come l'istanziazione, la convalida, il salvataggio, ecc.? Sono principalmente curioso perché quando uso LINQPad con il mio primo contesto EF 4.3, esegue due query prima di ognuna delle mie. Uno ha a che fare con la cronologia delle migrazioni che ho capito è che stiamo usando EF Migrations e sta provando a vedere se ha bisogno di aggiornamento automatico, e un altro è per la tabella EdmMetadata che non capisco poiché sembra che sia non è necessario se stiamo usando EFMigrations.Codice EF Prima 4.3 DbContext Ciclo di vita?

La mia mancanza di comprensione del perché viene chiamata la query mi fa chiedere se ci sono altre parti del ciclo di vita di DBContext che non sono a conoscenza di ciò che potrebbe essere utile per capire/sovrascrivere. Grazie in anticipo!

+0

(scusate per il mio cattivo inglese) Ecco alcune informazioni: http://blog.oneunicorn.com/2012/01/13/ef-4-3-beta-1-what-happened-to-that-edmmetadata -table /, EF 4.3 ha la capacità di utilizzare EdmMetadata per testare la compatibilità del modello, anche se, come hai detto, se si utilizza la migrazione probabilmente non dovrebbe assolutamente utilizzarlo. Ma sono più curioso di sapere come hai fatto a linqpad per lavorare con EF 4.3 ... ricevo un errore "impossibile caricare EntityFramework 4.1" quando provo ad aprire il mio assembly contestuale :( – Leo

+0

Penso che funzioni solo negli ultimi versione beta di LINQPad. – Ocelot20

+0

Penso che sia quello che sto usando, versione 4.38.03 ... solo per essere sicuro, stai compilando il tuo progetto con EntityFramework 4.3.0.0? – Leo

risposta

0

La query per EdmMetadata è per motivi di compatibilità. EF 4.1 non ha avuto migrazioni. Per essere in grado di capire se il modello è stato modificato o meno, è stata utilizzata la tabella EdmMetadata. Supponiamo che tu abbia sviluppato un'app utilizzando l'app EF 4.1 e ti sei spostato su EF 4.3 ma non hai modificato il modello. In questo caso non è necessario eseguire migrazioni, generare eccezioni o toccare il database poiché il modello non è stato modificato. La chiamata alla tabella EdmMetadata è solo per essere in grado di gestire questa situazione con garbo ed evitare di lanciare o toccare il database se non è necessario. Non credo ci fossero altre modifiche di questo tipo in EF 4.3.

Problemi correlati