¿Comandos de EntityFramework en ASP.Net 5 Class Library Package?

.net-core asp.net-core entity-framework-core

Pregunta

Estoy tratando de desarrollar mi primera aplicación web ASP.Net y en mi solución tengo dos proyectos. Una Web Application y una Class Library (Package) . Cuando construyo la versión ASP.Net 4.5 de esta aplicación, coloco mis entidades de Entity Framework 6 en una biblioteca de clases, por lo que estoy haciendo eso en la versión ASP.Net 5 . El problema es cuando instalo EntityFramework.Commands en la biblioteca de clases obtengo el error:

La dependencia EntityFramework.Command 7.0.0-rc1-final en Project DBEntities no admite framework .NetPlatform, Version = 5.4

Mi comprensión de esta pregunta SO es que dotnet5.4 es la nueva .Net 5 que se supone es compatible con EF7.

Aquí está mi archivo project.json :

{
  "version": "1.0.0-*",
  "description": "FFInfo.DAL Class Library",
  "authors": [ "Mathew" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",
    "frameworks": {
        "dotnet5.4": {
            "dependencies": {
                "Microsoft.CSharp": "4.0.1-beta-23516",
                "System.Collections": "4.0.11-beta-23516",
                "System.Linq": "4.0.1-beta-23516",
                "System.Runtime": "4.0.21-beta-23516",
                "System.Threading": "4.0.11-beta-23516"
            }
        }
    },
    "dependencies": {
        "EntityFramework.Commands": "7.0.0-rc1-final",
        "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final"
    }
}

¿Instalé el paquete incorrecto, se cambió tanto EF7 que estoy construyendo la clase incorrectamente, o me estoy perdiendo algo en mi archivo json?

EDITAR: Nuevo archivo project.json basado en sugerencias

{
    "version": "1.0.0-*",
    "description": "FFInfo.DAL Class Library",
    "authors": [ "Mathew" ],
    "tags": [ "" ],
    "projectUrl": "",
    "licenseUrl": "",
    "frameworks": {
        "dotnet5.4": {
            "dependencies": {
                "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-*",
                "Microsoft.Dnx.Runtime": "1.0.0-*",
                "Microsoft.Extensions.CommandLineUtils.Sources": {
                    "version": "1.0.0-*",
                    "type": "build"
                },
                "Microsoft.Extensions.PlatformAbstractions": "1.0.0-*",
                "System.Console": "4.0.0-*",
                "System.IO.FileSystem": "4.0.1-*"
            }
        },
        "netcore50": {
            "bin": {
                "assembly": "lib\\netcore50\\_._"
            }
        },
        "dependencies": {
            "EntityFramework.Commands": "7.0.0-rc1-final",
            "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final"
        }
    }
}

Respuesta aceptada

Supongo que la razón de su problema tiene carácter puramente técnico. El anuncio declara cambiar el nombre de dnx451 a net451 y dnxcore50 a dotnet5.4, pero se recomienda usar dicho cambio de nombre solo para bibliotecas de clases (que usted publica en NuGet, por ejemplo, para compartir con otras). Si lo entiendo correctamente, desarrolle una aplicación que use bibliotecas de clases y, por lo tanto, debería usar dnxcore50 lugar de dotnet5.4 . Por lo tanto , solo necesita cambiar el nombre de la cadena "dotnet5.4" a la cadena "dnxcore50" in the file project.json` para solucionar el problema .

Independientemente de la recomendación anterior, quiero agregar mi comprensión de su problema, por qué recibe el error sobre EntityFramework.Command 7.0.0-rc1-final.

Entiendo el cambio de nombre de los marcos como el paso en la dirección de futuros cambios que planea Microsoft. En el otro lado, todos los nombres de los marcos se interpretarán como nombres diferentes. Le sugiero que compare la información sobre las dependencias que se muestran en la página https://www.nuget.org/packages/EntityFramework.Commands/7.0.0-rc1-final de la información correspondiente de https: //www.nuget. org / packages / EntityFramework.MicrosoftSqlServer / 7.0.0-rc1-final . Las dependencias de EntityFramework.MicrosoftSqlServer (que no tienen problemas con el uso de dotnet5.4 ) se ven como en la imagen

introduzca la descripción de la imagen aquí

He marcado leer la parte responsable de dotnet5.4 . En el otro lado, las dependencias de EntityFramework.Commands ven como en la imagen de abajo:

introduzca la descripción de la imagen aquí

donde no hay una sección ".NETPlatform 5.4" que corresponda al nuevo nombre dotnet5.4 .

Supongo que es un error en la parte de project.json de EntityFramework.Commands :

"netcore50": {
  "bin": {
    "assembly": "lib\\netcore50\\_._"
  }
}

Supongo que uno tiene que cambiar netcore50 a dotnet5.4 en las líneas para admitir el nuevo nombre de marco dotnet5.4 correctamente. Uno debe reemplazar el contenido de "netcore50" a la copia de dnxcore50 (vea las líneas ):

"dotnet5.4": {
  "dependencies": {
    "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-*",
    "Microsoft.Dnx.Runtime": "1.0.0-*",
    "Microsoft.Extensions.CommandLineUtils.Sources": {
      "version": "1.0.0-*",
      "type": "build"
    },
    "Microsoft.Extensions.PlatformAbstractions": "1.0.0-*",
    "System.Console": "4.0.0-*",
    "System.IO.FileSystem": "4.0.1-*"
  }
}

Probablemente debería aumentar algunos números de versión de las dlls mencionadas anteriormente, pero aún no podrá usar EntityFramework.Commands bajo "dotnet5.4" hasta que se "dotnet5.4" la nueva versión fija.

ACTUALIZADO: presenté el problema al equipo de desarrolladores de EntityFramework. Incluiré la respuesta de Microsoft sobre el problema después de que lo obtenga.



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é