Sto esplorando il nuovo Entity Framework Core (NON in combinazione con ASP.Net, né sotto Linux, quello che sto codificando è solo una classica app WinForms costruita con Visual Studio in Windows 7 a 64 bit usando SQLite come motore di database).
Cercando di riprodurre questo esempio ho scoperto che ho bisogno dello strumento dotnet.exe
che non fa parte di Visual Studio 2015 e che deve essere installato con l' anteprima degli strumenti .NET Core per Visual Studio .
Dopo averlo installato, ho No executable found matching command "dotnet-ef"
un altro errore: mentre tentavo di eseguire le dotnet ef migrations add InitialCreate -c SqliteEfcExampleContext
: No executable found matching command "dotnet-ef"
.
Ho quindi google su un suggerimento che dice che ho bisogno di installare Microsoft.EntityFrameworkCore.Tools.DotNet
con NuGet.
Si è rifiutato di installare dicendo che ho bisogno di una versione più recente di NuGet stesso. Quindi ho aggiornato NuGet da https://dotnet.myget.org/F/nuget-beta/vsix/
.
Ma non riesco ancora a installare Microsoft.EntityFrameworkCore.Tools.DotNet
- si dice `Severity Code Description File File Error Repress Status Error 'Microsoft.EntityFrameworkCore.Tools.DotNet 1.1.0-preview4-final' ha un tipo di pacchetto 'DotnetCliTool 'che non è supportato dal progetto' SqliteEfcExample '.
Come posso creare le migrazioni comunque?
Ho trovato la risposta da solo, fammelo condividere di nuovo ...
Dopo aver eseguito i passaggi descritti nella domanda che ho
Installato Windows Management Framework 5.0 per aggiornare PowerShell.
Andato su Tools - NuGet Package Manager - Package Manager Console
per eseguire manualmente il seguente comando: PM> Install-Package Microsoft.EntityFrameworkCore.Tools -Pre
.
Quindi ho trovato i comandi rilevanti della Console di Gestione pacchetti (Add-Migration, Update-Database, Scaffold-DbContext, ecc.) Che funzionano e utilizzano Add-Migration SqliteEfcExampleContext
per generare il codice di migrazione per il codice del modello che ho già scritto.
AGGIORNARE:
La ricerca è continuata e ho affrontato un altro problema: il ... violates the constraint of type 'TContext'
errore ... violates the constraint of type 'TContext'
che prova a utilizzare i comandi sopra menzionati. L'ho descritto insieme alla soluzione in una risposta a una domanda sullo stesso errore trovato in un contesto leggermente diverso.