ASP.NET 5 EntityFramework.Core 7.0.0-rc1-final problema - El compilador quiere que se haga referencia a 7.0.0.0, que no se encuentra

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

Pregunta

Tengo el mismo problema. He agregado las siguientes dependencias en mi archivo 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"
  },
...

Utilicé dnu install EntityFramework y dnu install EntityFramework.SqlServer para instalar los paquetes. "EntityFramework": "7.0.0-beta4", fue escrito bajo el nodo de dependencies automáticamente por el mismo instalador.

Problema / Pregunta 1: ¡Para mi sorpresa cuando estaba EntityFramework de EntityFramework la EntityFramework el EntityFramework la versión disponible que estoy presentando es solo 6.1.3 !

Número 2: Cuando soy compilar mi aplicación mediante dnu build (I corrió dnu restore comando después de la adición de EntityFramework asambleas ( .Core y .Commands ) manualmente bajo dependencies nodo que estoy recibiendo un montón de errores de compilación:

"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"
  },
...

Si .Core y .Commands conjunto hace referencia a la multa de compilación del proyecto.

Luego cambié la versión de EntityFramework.Core a 7.0.0.0 como se menciona en el error:

"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"
  },
...

Pero dnu restore ahora me dio lo siguiente:

"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"
  },
...

Soy un novato en asp.net 5 plataforma de Visual Studio code . Y no puedo usar Visual Studio 2015 porque otros miembros del equipo de desarrollo usan OSX.

Este es un proyecto de aprendizaje para mí. El requisito es bastante sencillo. Conecte una base de datos de SQL Server, extraiga datos relacionales master-child utilizando Entity Framework.

Jodido ¡¡Ayuda!!

Gracias por adelantado

ACTUALIZAR

  1. Puedo ver los cambios principales en project.json para todos los paquetes con la versión 7.0.0-rc1-final . Usé la herramienta del generador Yeoman para crear el proyecto, pero parece que corrigió el paquete a través de Visual Studio . Entonces, ¿tengo que actualizar la versión del paquete manualmente y restore ?

  2. Cuando el proyecto fue creado / generado por Yeoman, no se global.json ningún archivo global.json de forma predeterminada. ¿Puedo agregar esto manualmente y poner el código dentro a mano? esto funcionara?

  3. También puedo ver que algunas referencias de paquetes adicionales se agregan al archivo project.json que no fueron agregadas por defecto por el generador Yeoman - como Microsoft.AspNet.Tooling.Razor , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Logging etc. ¿Se están utilizando de manera efectiva en el proyecto? Debido a que el generador no los agregó automáticamente, de nuevo, ¿puedo agregarlos manualmente y restaurar usando dnu restore ? ¿Tendrá esto algún impacto en el proyecto si los agrego manualmente?

Respuesta aceptada

Debería eliminar "EntityFramework" de las dependencias (eliminar la línea "EntityFramework": "7.0.0-beta4" ) y usar

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

solamente. No necesita agregar "EntityFramework.Core": "7.0.0-rc1-final" explícitamente si agregó "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final" debido a las siguientes dependencias:

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

Quiero decir que EntityFramework.MicrosoftSqlServer requiere EntityFramework.Relational , que requiere EntityFramework.Core .

Además, debe verificar que global.json contiene "sdk": { "version": "1.0.0-rc1-update1" } .

ACTUALIZADO : examiné el proyecto de prueba que subiste. Tenía muchos pequeños problemas. Lo modifiqué. Puedes descargar el proyecto modificado aquí . No te olvides de arreglar el ConnectionString usado en appsettings.json , contiene el Server que usé para mí.

Los cambios más importantes son el uso de BookContext.cs más simple:

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

El uso de los siguientes SampleData.cs

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

El uso de project.json con la siguiente parte de dependencies :

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

fijación de appsettings.json desde

"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"

(Los Data no deben estar bajo el Logging )

y el uso de los siguientes Startup.cs

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

Escribí en el comentario dentro del método Configure que uno debería ejecutar los comandos.

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

después de que todos los paquetes se restauran. dnx ef migrations add Initial creará una carpeta de Migrations adicional en el proyecto con los archivos como 20160101205609_Initial.cs y BookContextModelSnapshot.cs . La base de datos definida en appsettings.json se creará mediante la dnx ef database update y se llenará con los datos de prueba de SampleData.cs durante la bifurcación con el programa.

Por cierto, moví package.json dentro de la carpeta del paquete (en el mismo nivel que project.json ). No utiliza los paquetes, pero el movimiento hace que los paquetes npm sean visibles y se gestionen en Visual Studio.




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué