Entity Framework 7 "migrazioni dnx ef aggiunge" il file di output mancante

dnx entity-framework entity-framework-core

Domanda

Il comando EF7

dnx ef migrations add XXX 

improvvisamente smesso di funzionare. Fornisce l'output normale alla console ...

C:\Users\Nikola\Dev\ScanburSandbox\src\ScanburSandbox>dnx ef migrations add XXX
Done. To undo this action, use 'ef migrations remove'

... ma i soliti file .cs e .designer.cs non vengono prodotti.

Domanda: qualcuno può suggerire perché questo può accadere o come posso risolverlo?

Alcuni ulteriori dettagli:

Il contenuto della cartella Migrations prima e dopo l'esecuzione del comando ha il seguente aspetto:

11-02-2016  00:03             7.629 00000000000000_CreateIdentitySchema.cs
11-02-2016  00:03             6.637 00000000000000_CreateIdentitySchema.Designer.cs
11-02-2016  00:08             9.688 20160210230810_modelv2.cs
11-02-2016  00:08            10.103 20160210230810_modelv2.Designer.cs
12-02-2016  15:38             8.636 20160212083018_modelv3.cs
12-02-2016  15:38            10.065 20160212083018_modelv3.Designer.cs
12-02-2016  15:38            10.058 ApplicationDbContextModelSnapshot.cs

Ho eseguito gli strumenti EF7 ("dnx ef migrations" e "dnx ef database") con successo molte volte fino ad ora, ogni volta con il risultato previsto. Ciò significa che "le migrazioni di dnx ef aggiungono XXX" aggiungeranno un nuovo file .cs e .designer.cs ogni volta che viene eseguito. Ciò avverrà indipendentemente dal fatto che le classi del modello abbiano o meno delle modifiche.

Non ho idea di come risolvere questo strumento. Non vedo alcun flag di debug o qualsiasi file di log scritto ovunque. Non vedo errori nell'output.

Spero davvero che qualcuno abbia idee brillanti dato che sono bloccato qui.

Risposta accettata

Dopo ulteriori ricerche ho finalmente capito perché mancavano i file di migrazione.

Ho eseguito di nuovo il flag verbose: le migrazioni di dnx ef aggiungono v3 -v

Questo è l'output:

Finding DbContext classes...
Using context 'ApplicationDbContext'.
An operation was scaffolded that may result in the loss of data. Please review the migration for accuracy.
Reusing directory of file '00000000000000_CreateIdentitySchema.cs'.
Reusing directory of file 'ApplicationDbContextModelSnapshot.cs'.
Writing migration to
'c:\Users\Nikola\Dev\SdmWeb\src\SdmWeb\bin\output\approot\src\SdmWeb\Migrations\20160223195618_v1.cs'.
Writing model snapshot to
'c:\Users\Nikola\Dev\SdmWeb\src\SdmWeb\bin\output\approot\src\SdmWeb\Migrations\ApplicationDbContextModelSnapshot.cs'.
Done. To undo this action, use 'ef migrations remove'

Il punto delicato è che sta "riutilizzando la directory di ..." e in seguito dice che sta scrivendo i file di migrazione su ... \ bin \ output \ approot \ src.

Dopo aver pulito la cartella bin e aver eseguito nuovamente, i file di migrazione vengono creati nella cartella Migration direttamente in ... \ Migrations come previsto.


Risposta popolare

Sto avendo lo stesso problema, non ho avuto molta fortuna nello specificare il progetto, il contesto e la directory di output. Sembra che si stia bloccando e non facendo nulla. Ho anche provato a eseguirlo in un PowerShell dell'amministratore nel caso si tratti di un problema di autorizzazione, ma ancora nulla.

Modifica: ho provato ad aggiungere una nuova migrazione su una macchina Linux e sembrava creare la multa della migrazione. La creazione di migrazioni in seguito sembra funzionare perfettamente ora.




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché