it-swarm.com.de

Migrationen für Entity Framework in VS 2017 .NET Core können nicht aktiviert werden

Ich habe gerade VS 2017 installiert und ein neues Core-Projekt erstellt. Ich fügte hinzu:

  • Microsoft.EntityFrameworkCore (1.1.0)
  • Microsoft.NETCore.App (1.1.0)

Ich habe auch einen Ordner namens Models mit einer Klasse darin erstellt. Dann ging ich zur Package Manager Console und führte enable-migrations aus, damit VS die für mich benötigten Dateien erstellt. Anstelle der benötigten Dateien wurde jedoch die folgende Fehlermeldung angezeigt.

Der Begriff "Enable-Migration" wird nicht als Name eines Cmdlets, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens oder überprüfen Sie, ob Pfad ist korrekt und versuchen Sie es erneut.

Was soll ich hier machen?

Ich scheine vom Googeln zu sein. Es ist eine sehr ungewöhnliche Kombination (Core VS17 und EF), daher gibt es praktisch keine Informationen zum Thema. Einige Handbücher sprechen von Hand über das Editieren von package.json, was ziemlich schwierig ist, da VS 2017 den Core zu aktualisieren scheint, sodass dotnet restore nicht danach sucht, sondern eher nach einem xxx.csproj .

Zusammenfassend bin ich verwirrt und ziemlich unsicher, wie ich das Problem beißen soll.

9

EF Core hat keinen Enable-Migrations Befehl mehr. Migrationen sind standardmäßig aktiviert. Neue Migration mit Add-Migration hinzufügen. 

Dokumentation zu Paketmanagerbefehlen ist hier

11
Dmitry

Wie bereits erwähnt, ist das Aktivieren von Migrationen veraltet und trotzdem aktiviert, und Sie können das Add-Migration-InitialCreate verwenden. 

Ich füge hinzu, dass Sie NICHT weitere Pakete zum Projekt hinzufügen müssen, da es bereits auf die erforderlichen Assemblys im Metapaket Microsoft.AspNetCore.All verweist. 

Sie können auch Ihre Konsole (cmd/Shell je nach Betriebssystem) anstelle der Power-Shell-Konsole PM verwenden. Dazu müssen Sie einen Verweis auf das Dotnet-Tool hinzufügen: Bearbeiten Sie Ihre Projektdatei (klicken Sie mit der rechten Maustaste darauf und wählen Sie "Bearbeiten .csproj"). Fügen Sie in einer ItemGroup den folgenden Verweis hinzu:

<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0"></DotNetCliToolReference>

und dann in der Konsole dotnet ef migrations add InitialCreate

Hinzufügen der Migration in .NET Core

.NET Core-CLI

2
David Refaeli

Ich hatte ein ähnliches Problem mit Visual Studio 2017 und ein importiertes Projekt aus VS 2015, EF Migrations funktionierte nicht mehr.

Nach dem Durchlesen der Dokumentation auf GitHub: https://github.com/aspnet/EntityFramework/issues/7031

Ich habe dieses Paket über Nuget installiert:

"Microsoft.EntityFrameworkCore"

Dies führte zu einem Kaskadeneffekt von mehreren Downloads/Installationen .. Nach der Installation und dem Neustart von VS 2017 ist alles wieder normal.

Zwei Tage später hatte ich bei einem anderen Visual Studio 2015-Projekt dasselbe Problem und löste es nach dem oben beschriebenen Verfahren, aber dann erhielt ich diesen neuen Fehler: 

Msgstr "Vererbungssicherheitsregeln, die durch Typ verletzt werden: 'System.Net.Http.WebRequestHandler'. Abgeleitete Typen müssen entweder mit dem Sicherheitszugriff des Basistyps übereinstimmen oder weniger zugänglich sein."

Ich habe diesen Fehler behoben, indem ich das Projekt-Framework auf das neueste ".NET Framework 4.6.2" aufgerüstet habe (Scary .... aber es funktionierte ohne weitere Probleme)

Ich habe auf GitHub auf diese Dokumentation verwiesen: https://github.com/dotnet/corefx/issues/11100

2
Alex

Ich habe gerade Microsoft.EntityFrameworkCore.Tools installiert, dann habe ich versucht, enable-migrations auszuführen, dann bekam ich in VS2017 die folgende Meldung:

Enable-Migrations is obsolete. Use Add-Migration to start using Migrations.

Ich hoffe es hilft.

1
franco148

Aufgelöst

  1. Klicken Sie mit der rechten Maustaste auf das Projekt, und klicken Sie dann auf die Option: NuGet verwalten Paket; Suchen Sie in Browse nach dem EntityFramework-Add-On, installieren Sie es und starten Sie Visual Studio neu.
  2. Erstellen Sie eine MyDbContext-Klasse, die von DbContext erbt.
  3. Klicken Sie auf Extras> NuGet Package Manager> Package Manager Console
  4. Aktivieren Sie Migrationen
  5. add-migration InitialModel
0
Luisitox

gehen Sie zu Tools-> NuGet Package Manager-> Package Manager Console

schreiben

install-package EntityFramework

dann 

enable-migrations

dieser Befehl wird während der gesamten Lebensdauer eines Projekts ausgeführt, dh Sie müssen ihn nur einmal in einem Projekt schreiben

0
A_Moeen