Sto lavorando a un progetto che utilizza Entity Framework 4.1 per mantenere i nostri vari oggetti nel database (prima il codice).Entity Framework 4.1 Il modello di backup del contesto è cambiato da quando il database è stato creato, subito dopo la creazione del DB
Sto testando in Visual Studio con un DB SQL Express locale e il nostro server Jenkins distribuisce codice impegnato su un server di prova. Quando ciò accade, modifica temporaneamente la stringa di connessione locale per puntare al server DB di test ed eseguo un test dell'unità per ricreare il database di test in modo che corrisponda alle nostre ultime entità, ecc.
Ho notato di recente i nostri test server sta dando questo errore:
Il modello di backup del contesto "EntityFrameworkUnitOfWork" è stato modificato da quando il database è stato creato. Eliminare o aggiornare manualmente il database o chiamare Database.SetInitializer con un'istanza IDatabaseInitializer. Ad esempio, la strategia DropCreateDatabaseIfModelChanges eliminerà e ricreerà automaticamente il database e facoltativamente lo seminerà con nuovi dati.
Questo di solito è un'indicazione che il nostro codice è cambiato e ho bisogno di eseguire il test dell'unità per ricreare il database. Tranne che l'ho appena fatto! Non credo che ci sia qualcosa di sbagliato nel nostro processo di distribuzione: le DLL sul server di test sembrano essere le stesse versioni del mio ambiente locale. Ci sono altre impostazioni o fattori ambientali che possono causare questo errore sul modello che è cambiato da quando è stato creato il database?
Sono nuovo qui - grazie per qualsiasi aiuto!
Si può usare il metodo 'System.Data.Entity.Infrastructure.EdmMetadata.TryGetModelHash (YourDbContext)' per ottenere ModelHash e provare a farlo sul PC locale e sul server di test per vedere se sono diversi? – Marc
Hai eseguito uno strumento personalizzato per rigenerare il contesto o POCO dopo aver rigenerato il database? –
@Marc Sì, gli hash sembrano essere diversi. – DaveBeta