2015-11-25 27 views

risposta

18

ho trovato la soluzione per conto mio:

(context.GetService<IDatabaseCreator>() as RelationalDatabaseCreator).Exists() 

Si lavora per EF versione 7.0.0-rc1-finale per SqlServer

+0

Funziona anche con EF Core 1.1.0-preview1-final –

+0

Funziona. Grazie mille – thangchung

+1

Entity Framework Core 2.0: '(context.Database.GetService () as RelationalDatabaseCreator) .Exists()' – Marcel

3

Se si verifica se esiste per determinare se è necessario crearlo, è possibile invece utilizzarlo;

context.Database.EnsureCreated(); 
+1

Ho solo bisogno di sapere se esiste, io non è necessario creare –

+0

thats cool, ma questo metodo restituirà 'true' se il database è stato creato e false se già esistente. Almeno questo è quello che dice giusto in questo momento (v 1.1.1.0) – Enn

+2

Non utilizzare le migrazioni E 'ConfirmCreated()' in parallelo! Crea il database ** senza ** tabella della cronologia delle migrazioni '__EFMigrationsHistory'. Quindi 'Database.GetPendingMigrations()' ritornerà e 'Database.Migrate()' applicherà ** tutte ** le migrazioni. E questo fallisce, ovviamente. In effetti, non vedo alcun beneficio nell'usare 'ConfirmCreated()' e 'GuaranteDeleted()' (eccetto per i test unitari). Anche se la sostituzione di "DropDatabaseIfModelChanges' non funzionerà, avrai bisogno della cronologia di migrazione per rilevare le modifiche del modello! – Marcel

Problemi correlati