5

Sembra che CodeFirst smetta di fare i compiti quando non ha il pieno controllo del database (suppongo). Lo scenario è un sito web ospitato su Arvixe.com (o suppongo qualsiasi altro server di hosting condiviso), dove devo creare database solo dal loro pannello di controllo (e NON con SQL Server Management Studio, solo per dire ...) . Una volta creato un database vuoto, registro un collegamento nel sito web, e lo uso per generare dati da oggetti Poco come in:add-migration non funziona con database SQL server remoti in hosting condiviso

add-migrazione m1 -TargetDatabase MyConnection

Questo genera correttamente la mia prima migrazione , che posso applicare senza problemi con

update-banca dati -TargetDatabase MyConnection

la prima preoccupazione, non troppo importante, è che, poiché il database è esistente, verrà non emette il comando dei semi, quindi devo inserisci i miei primi dischi a mano, ma questo è non è un grosso problema.

Poi posso cambiare la mia oggetti Poco, e ho bisogno di aggiornare il database, ma quando emetto ALTRO

add-migrazione m2 -TargetDatabase MyConnection

dà l'errore:

sistema. Data.Entity.Migrations.MigrationsPendingException: impossibile generare una migrazione esplicita perché sono in corso le seguenti migrazioni esplicite: [201111081426466_m1]. Applicare le migrazioni esplicite in attesa prima di tentare di generare una nuova migrazione esplicita.

Questo è davvero strano, dal momento che se guardo il database, posso vedere anche il __MigrationHistory tavolo, ma poi sembra che non possa riconoscerlo ...

Chiunque con lo stesso problema, o qualche buona punta a dove indagare? Grazie in anticipo, Andrea Bioli

+1

Ok, solo nel minuto dopo il post, mi sono reso conto che la tabella __MigrationHistory NON è stata creata come tabella di sistema ... quindi è ovvio che la seconda volta, non riesce a trovarlo ... quindi il problema sembra essere i diritti di scrivere la tabella nel posto giusto ... – Andrea

risposta

1

Ho avuto questo problema. Sono stato in grado di risolverlo fornendo un parametro connectionString e un parametro connectionProviderName per entrambi i comandi Update-Database e Add-Migration.

Se nella propria soluzione sono presenti molti progetti con più file di configurazione, Gestione pacchetti sembra essere confuso. Nel mio caso, avevo selezionato un progetto come progetto predefinito per la Console di gestione pacchetti, ma invece estraeva la stringa di connessione dal progetto di avvio predefinito della soluzione di Visual Studio.

Problemi correlati