2016-07-26 7 views
0

ich nach dem Tutorial hier aufgeführt:'Microsoft.EntityFrameworkCore.Tools' ist nicht in Projekt auf Scaffold-DbContext installiert

https://docs.efproject.net/en/latest/platforms/aspnetcore/existing-db.html

Anstatt jedoch einschließlich dem DB-Kontext im WebApplication Projekt, Ich möchte, dass der DB-Kontext, die Entitäten usw. in einer anderen .NET Core Class Library enthalten sind.

Ich habe einige frühe Kompatibilitätsprobleme durch Aktualisierung der Bibliotheken project.json Datei mit dem 'netcoreapp1.0' Framework.

project.json

VOR:

{ 
    "version": "1.0.0-*", 

    "dependencies": { 
     "NETStandard.Library": "1.6.0" 
    }, 

    "frameworks": { 
     "netstandard1.6": { 
      "imports": "dnxcore50" 
     } 
    } 
} 

NACH:

{ 
    "version": "1.0.0-*", 

    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ "portable-net451+win8" ], 
     "buildOptions": { 
     "emitEntryPoint": true 
     }, 

     "dependencies": { 
     "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0", 
     "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.0", 
     "Microsoft.NETCore.App": { 
      "type": "platform", 
      "version": "1.0.0-*" 
     }, 
     "Microsoft.EntityFrameworkCore": "1.0.0-*", 
     "Microsoft.EntityFrameworkCore.Tools": "1.0.0-*" 
     }, 
     "tools": { 
     "Microsoft.EntityFrameworkCore.Tools": "1.0.0-*" 
     } 
    }, 
    "netstandard1.6": { 
     "imports": "dnxcore50", 
     "dependencies": { 
     "NETStandard.Library": "1.6.0" 
     } 
    } 
    } 
} 

Das Tutorial geht weiter, das zu, um zu sagen: 'Reverse Engineering Modell' den folgenden Befehl ein muss in der Konsole des Paketmanagers ausgeführt werden:

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models 

bekomme ich folgende Fehlermeldung:

Cannot execute this command because 'Microsoft.EntityFrameworkCore.Tools' is not installed in project 'src\DB'. Add 'Microsoft.EntityFrameworkCore.Tools' to the 'tools' section in project.json. See http://go.microsoft.com/fwlink/?LinkId=798221 for more details. 

Wo DB der Name der Klassenbibliothek ist.

Sie können Microsoft.EntityFrameworkCore.Tools im Abschnitt Tools deutlich sehen. Ich bin mir also nicht sicher, wie es weitergehen soll.

+0

Ihr Projekt json scheint ungültig arbeiten. Es gibt keinen Toolabschnitt im Schema innerhalb des Frameworks. Nur auf der obersten Ebene – Tseng

Antwort

1

Es gibt keine Werkzeuge Abschnitt innerhalb "Framework" Abschnitt in der project.json schema definiert.

sollte Dieses korrekt

{ 
    "version": "1.0.0-*", 

    "dependencies": { 
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0", 
    "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.0", 
    "Microsoft.EntityFrameworkCore": "1.0.0-*", 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-*" 
    }, 
    "tools": { 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-*" 
    }, 

    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ "portable-net451+win8" ], 
     "buildOptions": { 
     "emitEntryPoint": true 
     }, 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "type": "platform", 
      "version": "1.0.0-*" 
     } 
     } 
    }, 
    "netstandard1.6": { 
     "imports": "dnxcore50", 
     "dependencies": { 
     "NETStandard.Library": "1.6.0" 
     } 
    } 
    } 
} 
+0

Also war ich die nächste Fehlermeldung, die ich erhielt, sagte mir, die Klassenbibliothek als Start-Projekt zu setzen. Danach schlägt der Scaffold-DbContext-Befehl fehl, da das "Programm keine statische 'Main'-Methode für einen Einstiegspunkt enthält" – Robodude

+0

Also ging ich mit den nächsten logischen Schritten und fügte nur eine Hauptmethode hinzu. Ich habe die folgende Nachricht erhalten: Diese Vorschau der Entity Framework-Tools unterstützt keine Befehle für Klassenbibliotheksprojekte in ASP.NET Core- und .NET Core-Anwendungen. Weitere Informationen und Problemumgehungen finden Sie unter http://go.microsoft.com/fwlink/?LinkId=798221. – Robodude

+0

Vielleicht ist es, weil es Ihre netstandard1.6 Abschnitt immer noch da ist – Tseng

Verwandte Themen