c# entity-framework entity-framework-core .net-standard-2.0

c# - Intentando configurar el núcleo de Entity Framework en un proyecto.Net Standard



entity-framework entity-framework-core (3)

Me preguntaba si podría configurar mi EntityFrameworkCore en un proyecto .NET Standard 2.0 fácilmente. Estaba siguiendo este Tutorial pero requiere .NET Core o Framework.

Cuando llegué a este paso:

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

Tengo este error

El proyecto de inicio ''projectName'' targets framework ''.NETStandard''. No hay tiempo de ejecución asociado con este marco, y los proyectos dirigidos a él no se pueden ejecutar directamente. Para usar las herramientas de la consola del administrador de paquetes de Entity Framework Core con este proyecto, agregue un proyecto ejecutable dirigido a .NET Framework o .NET Core que haga referencia a este proyecto, y configúrelo como el proyecto de inicio; o, actualice este proyecto para .NET Framework o .NET Core.

Me pregunto si podría configurar mi entidad en .NET Standard o si hay una mejor práctica que debería estar haciendo.


El proyecto de inicio ''projectName'' targets framework ''.NETStandard''. No hay tiempo de ejecución asociado con este marco, y los proyectos dirigidos a él no se pueden ejecutar directamente. Para usar las herramientas de la consola del administrador de paquetes de Entity Framework Core con este proyecto, agregue un proyecto ejecutable dirigido a .NET Framework o .NET Core que haga referencia a este proyecto, y configúrelo como el proyecto de inicio; o, actualice este proyecto para .NET Framework o .NET Core.

El mensaje de error significa esto: No existe tal cosa como un proyecto ejecutable de .NET Standard. No hay tiempo de ejecución para eso porque es simplemente un mecanismo de reenvío de tipo para múltiples tiempos de ejecución diferentes.

En términos de programación, es un poco como tratar de crear una instancia de una interfaz . No puedes hacerlo porque no hay ninguna implementación para ejecutar.

La solución es elegir una plataforma ejecutable para que se ejecute su aplicación. Puede hacer referencia a todas las bibliotecas .NET Standard que desee desde su exectuable (siempre que sean compatibles con su tiempo de ejecución), pero el ejecutable en sí no se puede ejecutar en .NET Standard. Debe dirigirse a una plataforma como .NET Framework o .NET Core para poder ejecutarse.

En otras palabras, para usar un comando para andamiar su base de datos, debe apuntar un tiempo de ejecución. Por lo tanto, deberá ejecutar este comando mientras se dirige a su proyecto ejecutable principal, o agregar un nuevo proyecto ejecutable a su solución para ejecutarlo.


  1. Haga clic derecho en la aplicación .NET Core en su proyecto

  2. Haciendo clic en Establecer como proyecto de inicio


Primera respuesta aquí. En realidad estoy tratando de hacer esto también. Obtuve el Scaffolding pero Net Standard no parece cargar las Extensiones para las propiedades de la tabla.

Asegúrese de instalar el paquete EntityFrameworkCore.Tools para EF. Solo necesitas el soporte 4.6.1, que es el predeterminado. Si descubro cómo solucionar el problema de las extensiones, lo publicaré aquí.

Estos dos son necesarios. Install-Package Microsoft.EntityFrameworkCore.SqlServer Install-Package Microsoft.EntityFrameworkCore.Tools