ASP.NET 5 EntityFramework.Core 7.0.0-rc1-final issue - Il compilatore vuole che il riferimento 7.0.0.0 non venga trovato

asp.net asp.net-core c# dnu entity-framework-core

Domanda

Sto avendo lo stesso problema. Ho aggiunto le seguenti dipendenze nel mio file project.json :

"dependencies": {
    "EntityFramework": "7.0.0-beta4",
    "EntityFramework.Core": "7.0.0-rc1-final",
    "EntityFramework.SqlServer": "7.0.0-beta8",
    "EntityFramework.Commands": "7.0.0-rc1-final"
  },
  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "ef": "EntityFramework.Commands"
  },
...

Ho usato dnu install EntityFramework e dnu install EntityFramework.SqlServer per installare i pacchetti. "EntityFramework": "7.0.0-beta4", stato scritto automaticamente dal nodo delle dependencies dal programma di installazione stesso.

Problema / Domanda 1: Con mia sorpresa quando stavo tirando dentro l' EntityFramework per EntityFramework la versione disponibile che sto presentando è solo 6.1.3 !

Problema 2: Quando dnu build compilazione della mia applicazione usando dnu build ( dnu restore comando dnu restore dopo aver aggiunto EntityFramework assembly .Core ( .Core e .Commands ) manualmente sotto il nodo delle dependencies Sto ricevendo un sacco di errori di compilazione:

"dependencies": {
    "EntityFramework": "7.0.0-beta4",
    "EntityFramework.Core": "7.0.0-rc1-final",
    "EntityFramework.SqlServer": "7.0.0-beta8",
    "EntityFramework.Commands": "7.0.0-rc1-final"
  },
  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "ef": "EntityFramework.Commands"
  },
...

Se rimuovo l' .Core e .Commands riferimento alla fine del progetto.

Quindi ho cambiato la versione di EntityFramework.Core in 7.0.0.0 come indicato nell'errore:

"dependencies": {
    "EntityFramework": "7.0.0-beta4",
    "EntityFramework.Core": "7.0.0-rc1-final",
    "EntityFramework.SqlServer": "7.0.0-beta8",
    "EntityFramework.Commands": "7.0.0-rc1-final"
  },
  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "ef": "EntityFramework.Commands"
  },
...

Ma dnu restore ora mi ha dato il seguente:

"dependencies": {
    "EntityFramework": "7.0.0-beta4",
    "EntityFramework.Core": "7.0.0-rc1-final",
    "EntityFramework.SqlServer": "7.0.0-beta8",
    "EntityFramework.Commands": "7.0.0-rc1-final"
  },
  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "ef": "EntityFramework.Commands"
  },
...

Sono un novizio in asp.net 5 piattaforma di Visual Studio code . E non posso utilizzare Visual Studio 2015 poiché gli altri membri del team di sviluppo utilizzano OSX.

Questo è un progetto di apprendimento per me. Il requisito è abbastanza semplice. Connetti un database SQL Server, estrae i dati relazionali master-child usando Entity Framework.

Avvitato! Aiuto!!

Grazie in anticipo

AGGIORNARE

  1. Riesco a vedere i principali cambiamenti in project.json per tutti i pacchetti con la versione 7.0.0-rc1-final . Ho usato lo strumento generatore Yeoman per creare il progetto ma sembra che tu abbia corretto il pacchetto tramite Visual Studio . Quindi, devo aggiornare la versione del pacchetto manualmente e restore ?

  2. Quando il progetto è stato creato / generato da Yeoman, non è stato aggiunto il file global.json per impostazione predefinita. Posso aggiungerlo manualmente e inserire il codice a mano? Funzionerà?

  3. Posso anche vedere alcuni ulteriori riferimenti al pacchetto aggiunti al file project.json che non sono stati aggiunti per impostazione predefinita dal generatore Yeoman, come Microsoft.AspNet.Tooling.Razor , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Logging ecc. Vengono utilizzati tutti efficacemente nel progetto? Perché il generatore non li ha aggiunti automaticamente, di nuovo, posso aggiungerli manualmente e ripristinare usando il dnu restore ? Questo avrà qualche impatto sul progetto se li aggiungo manualmente?

Risposta accettata

È necessario rimuovere "EntityFramework" dalle dipendenze (rimuovere la riga "EntityFramework": "7.0.0-beta4" ) e utilizzare

"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final",
"EntityFramework.Commands": "7.0.0-rc1-final"

solo. Non è necessario aggiungere "EntityFramework.Core": "7.0.0-rc1-final" esplicitamente se è stato aggiunto "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final" causa delle seguenti dipendenze:

"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final",
"EntityFramework.Commands": "7.0.0-rc1-final"

Intendo che EntityFramework.MicrosoftSqlServer richiede EntityFramework.Relational , che richiede EntityFramework.Core .

È necessario verificare inoltre che global.json contenga "sdk": { "version": "1.0.0-rc1-update1" } .

AGGIORNATO : ho esaminato il progetto di test che hai caricato. Aveva molti piccoli problemi. L'ho modificato. Puoi scaricare il progetto modificato qui . Non dimenticare di correggere ConnectionString utilizzato in appsettings.json , contiene il Server che ho usato su di me.

Le modifiche più importanti sono l'utilizzo di BookContext.cs più semplice:

"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final",
"EntityFramework.Commands": "7.0.0-rc1-final"

l'utilizzo dei seguenti SampleData.cs

"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final",
"EntityFramework.Commands": "7.0.0-rc1-final"

l'utilizzo di project.json con la seguente parte delle dependencies :

"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final",
"EntityFramework.Commands": "7.0.0-rc1-final"

fissaggio di appsettings.json da

"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final",
"EntityFramework.Commands": "7.0.0-rc1-final"

a

"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final",
"EntityFramework.Commands": "7.0.0-rc1-final"

(I Data non dovrebbero essere sotto Logging )

e l'utilizzo dei seguenti Startup.cs

"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final",
"EntityFramework.Commands": "7.0.0-rc1-final"

Ho scritto nel commento all'interno del metodo Configure che si dovrebbero eseguire i comandi

"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final",
"EntityFramework.Commands": "7.0.0-rc1-final"

dopo che tutti i pacchetti sono stati ripristinati. dnx ef migrations add Initial creerà una cartella Migrations aggiuntiva nel progetto con i file come 20160101205609_Initial.cs e BookContextModelSnapshot.cs . Il database definito in appsettings.json verrà creato dnx ef database update di dnx ef database update e sarà riempito con i dati di test da SampleData.cs durante il biforcarsi con il programma.

Tra l'altro ho spostato package.json all'interno della cartella del pacchetto (allo stesso livello di project.json ). Non si usano i pacchetti, ma il movimento rende visibili i pacchetti npm e la gestione in Visual Studio.




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é