Ho creato un nuovo progetto libreria di classi (pacchetto) (prima di VS 2015 RC usato il nome anche peggio della libreria di classi asp.net per rappresentare il livello dei dati. Giusto per essere chiari questa è la struttura più recente stile kproj.Come abilitare le migrazioni (EF6) in un progetto asp.net 5?
Aggiunto EF 6.1.3 per project.json. Attualmente solo il targeting DNX451.
"dependencies": {
"EntityFramework": "6.1.3"
,"Moq": "4.2.1502.911"
},
creati classi del modello iniziale e utilizzando un database di AlwaysCreate inizializzatore tutto funziona bene. Ora ha bisogno di passare a migrazioni in modo utilizzati Enable-migrazioni nella console del gestore pacchetti e ottenuto:
Enable-Migrations : The term 'Enable-Migrations' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Enable-Migrations
+ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Enable-Migrations:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Per le migrazioni EF7 il gestore pacchetti non è supportato per i comandi di migrazione. Invece c'è un nuovo comando ef eseguito attraverso dnu ma quel nuovo processo è solo per EF7 non EF6 giusto?
Perché il gestore pacchetti ritiene che Enable-Migrations non sia valido anche se EF6 è stato referenziato?
La migliore risposta finora. Sembra che tu abbia ragione. È possibile che quegli script ps siano incompatibili in quanto il pacchetto, la configurazione e la struttura della cartella vengono cambiati. Migrate.exe è un vicolo cieco. Sembra che venga utilizzato solo per apportare modifiche al database dalla migrazione. Enable-Migration e Add-Migration sono puramente in PowerShell. Onestamente tutto ciò di cui ho bisogno è una utility standalone, ma per quello che sto facendo ora l'inizializzatore "DropCreateDatabaseAlways" funziona bene. –
C'è anche un problema con i comandi e VS2015 RC in generale: https://github.com/aspnet/EntityFramework/issues/1950. Se dividi il tuo EF6 in un assembly separato e usi il vecchio stile csproj, dovresti poterlo fare riferimento nell'app DNX451 e far funzionare i comandi (supponendo che tu stia utilizzando la soluzione alternativa nel collegamento) – NPNelson