Entity framework 7, visual studio 2015, i comandi della console non funzionano

asp.net-core-mvc c# entity-framework-core visual-studio-2015

Domanda

Sto usando il modello di applicazione Web ASP.NET 5 (che utilizza EF7 e MVC 6), quello con i singoli account utente e ho il seguente problema:

Quando aggiungo il mio DBSet alla classe ApplicationDbContext, e poi andando a una pagina che sta cercando di usare questo nuovo DBSet, non funziona, ho capito:

A database operation failed while processing the request.
SqlException: Invalid object name 'WallMessageModel'. 

There are pending model changes for ApplicationDbContext
Scaffold a new migration for these changes and apply them to the database from the command line:

 dnx . ef migration add [migration name] 
 dnx . ef migration apply

Ora quando eseguo questi comandi, o qualsiasi comando "dnx" ottengo:

CategoryInfo          NotSpecified: Error: Unable t...stemindsWebsite:String, RemoteException    FullyQualifiedErrorId : NativeCommandError

E se sto cercando di eseguire qualsiasi comando "k" sto ottenendo:

CategoryInfo          : ObjectNotFound: k:String, CommandNotFoundException    FullyQualifiedErrorId : CommandNotFoundException

Sto usando "EntityFramework.SqlServer": "7.0.0-beta5", "EntityFramework.Commands": "7.0.0-beta5"

Ho provato ad usare la versione 7.0.0- * e ancora non funziona per me. Per favore, dimmi cosa sto sbagliando?

Fondamentalmente, credo che i comandi EF non siano installati correttamente sulla mia macchina (tramite Visual Studio 2015 / PowerShell). Tuttavia, non sembra esserci alcun riferimento che mostra come ottenere quelli installati (non dovrebbero essere incorporati in VS2015 quando si utilizza EF7?).

Risposta accettata

Quando si aggiunge un altro DbSet alla classe ApplicationDbContext o si aggiunge / modifica qualsiasi altra classe di entità esistente, il modello di runtime cambia dal modello di database. Quindi è necessario impalcare una nuova migrazione e applicarla al database in modo che entrambi i modelli siano sincronizzati tra loro. Come suggerisce il messaggio di eccezione, dovresti eseguire quei comandi per farlo.

Per quei comandi (o qualsiasi altro comando dnx) non in esecuzione, i comandi dnx non sono costruiti in VS2015. Vengono dall'estensione di Microsoft ASP.NET e Web Tools per Visual Studio. Verifica di averlo installato per il tuo VS. Ciò ti consentirà di eseguire comandi dnx. k è un termine molto antico ed è stato rinominato in dnx . Anche beta5 è la vecchia versione, l'ultima versione è RC1, che ha molte più funzionalità. Informazioni dettagliate su come installare e utilizzare Web Tools sono disponibili su https://get.asp.net/



Related

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é