Soy nuevo en EF Core y estoy tratando de que funcione con mi proyecto ASP.NET Core.
Recibo el error anterior en mi startup.cs
cuando intento configurar el DbContext
para usar una cadena de conexión de config. Estoy siguiendo este tutorial: https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/intro
El código problemático en startup.cs
:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.SpaServices.Webpack;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.EntityFrameworkCore;
using tracV2.models;
using tracV2.data;
namespace tracV2
{
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddSingleton<IConfiguration>(Configuration);
string conn = Configuration.GetConnectionString("optimumDB");
services.AddDbContext<tracContext>(options => options.usesqlserver(conn));
}
El UseSqlServer
método se reconoce si lo pongo directamente en el contexto:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
namespace tracV2.data
{
public class tracContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("myrealconnectionstring");
}
Toda mi investigación en línea apunta a referencias faltantes, pero parece que no puedo encontrar cuál me estoy perdiendo ( ver imagen ).
asp.net-core
entity-framework-core
Maxime Laflamme
fuente
fuente
Respuestas:
Este es un problema conocido en el sistema del proyecto. Ver dotnet / project-system # 1741
fuente
Primero instalamos el paquete Microsoft.EntityFrameworkCore.SqlServer NuGet:
Luego, después de importar el espacio de nombres con
agregamos el contexto de la base de datos:
fuente
agregando
using Microsoft.EntityFrameworkCore;
resuelto manualmente el problema para mí
Encontramos eso aquí
Editar...
para dotnet core 3.1 agregar
Microsoft.EntityFrameworkCore.SqlServer
fuente
Instalar a continuación NuGet Package resolverá su problema
Microsoft.EntityFrameworkCore.SqlServer
fuente
Falta el paquete. Abra Package Console Console y ejecute el siguiente código:
fuente
Sigue los pasos a continuación.
Instale Entity Framework Core Design y el proveedor de bases de datos SQL Server para Entity Framework Core:
Núcleo de marco de entidad de importación:
Y configure su DbContext:
fuente
Estaba usando Visual Studio Code.
1) Intente instalar el paquete 'Microsoft.EntityFrameworkCore.SqlServer' especificando el número de versión.
Código VS :
'dotnet add package Microsoft.EntityFrameworkCore.SqlServer -v 1.1.1'
Estudio visual:-
'Install-Package Microsoft.EntityFrameworkCore.SqlServer -v 1.1.1'
Consulte el enlace ' Paquete' Microsoft.EntityFrameworkCore.SqlServer 'es incompatible con' todos 'los marcos del proyecto ' para hacerlo.
2) Luego agregue el espacio de nombres ' usando Microsoft.EntityFrameworkCore; 'manualmente en el archivo Startup.cs.
Consulte el siguiente enlace https://github.com/aspnet/EntityFramework/issues/7891 .
3) Si tiene algún problema de dependencia para ' Microsoft.EntityFrameworkCore.SqlServer.Design' , como "Paquete ' Microsoft.EntityFrameworkCore.Design' es incompatible con 'todos' los marcos en el proyecto ', necesitamos ejecutar el siguiente comando,
Código VS: -
dotnet add package Microsoft.EntityFrameworkCore.Design -v 1.1
Estudio visual
Install-Package Microsoft.EntityFrameworkCore.Design -v 1.1
fuente
Proyecto -> ManageNugetPackages -> Examinar -> Buscar "Microsoft.EntityFrameworkCore.SqlServer" e instalarlo o actualizarlo.
fuente
Como se menciona en la respuesta de mayor puntuación de Win, es posible que deba instalar Microsoft.EntityFrameworkCore.SqlServer NuGet Package, pero tenga en cuenta que esta pregunta está utilizando asp.net core mvc. En el último ASP.NET Core 2.1, MS ha incluido lo que se llama un metapaquete llamado Microsoft.AspNetCore.App
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/metapackage-app?view=aspnetcore-2.2
Puede ver la referencia si hace clic con el botón derecho en el proyecto ASP.NET Core MVC en el explorador de soluciones y selecciona
Edit Project File
Debería ver este metapaquete si el núcleo de ASP.NET utiliza la instrucción de uso
<PackageReference Include="Microsoft.AspNetCore.App" />
Microsoft.EntityFrameworkCore.SqlServer se incluye en este metapaquete. Entonces, en su Startup.cs, es posible que solo necesite agregar:
using Microsoft.EntityFrameworkCore;
fuente
Creo que esto se puede resolver agregando una referencia de proyecto a Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.SqlServer no se instaló directamente en mi proyecto, pero el paquete .Design lo instalará de todos modos como requisito previo.
fuente
Para mí, este problema ocurrió con Visual Studio Code y pude solucionarlo con 2 pasos:
using Microsoft.EntityFrameworkCore;
dotnet build
en la terminal.fuente
En Visual Studio, verifique el Administrador de paquetes NuGet => Gestionar paquetes para la solución , verifique todos estos paquetes, ya sea que estén instalados en su solución o no, como se muestra a continuación:
Resolví los mismos problemas después de verificar que todos los paquetes anteriores se hayan instalado.
fuente
Instalar paquete, EntityFrameworkCore.SqlServer:
Nuget: https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.SqlServer/
fuente
primero agregar
Install-Package Microsoft.EntityFrameworkCore.SqlServer
luego agregue en su archivo .cs
using Microsoft.EntityFrameworkCore;
finalmente agregue esto en su núcleo
Startup.cs
fuente
. Creo que este es el problema con la versión de Sqlite, tuve el mismo problema cuando estaba usando estas versiones de SqLite
Versión 2.2.4 :
Después de verificar la versión aquí , cambié la versión y luego funcionó.
No hay error después de usar esto
Versión 2.1.2 :
fuente
Lo solucioné simplemente:
Agregar
SqlServerDbContextOptionsExtensions
a la clase en cuestión ResolverSqlServerDbContextOptionsExtensions
Esto soluciona el problema, debe faltar alguna referencia por defecto.
fuente
Para cualquiera que todavía tenga este problema: use NuGet para instalar: Microsoft.EntityFrameworkCore.Proxies
Este problema está relacionado con el uso de Castle Proxy con EFCore.
fuente
¡Wow tantas respuestas pero ninguna mencionó este paquete Microsoft.EntityFrameworkCore.InMemory !
Agregue la referencia a este paquete:
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="2.2.2" />
y debería estar listo para comenzar.fuente
Tuve este problema cuando me mudé a Microsoft.EntityFrameworkCore.SqlServer v3.0.0 y Microsoft.EntityFrameworkCore.Tools v3.0.0
Cuando volví a cambiar a v2.2.6 en ambas bibliotecas, el error desapareció. Esto es más una solución que una solución, pero lo pondrá en funcionamiento hasta que se solucione el problema.
fuente
Mensaje de error:
Solución:
instalar "microsoft.entityframeworkcore.sqlserver" con NuGet
Fijo:
PD: asegúrese de usar EF en el contenido "usando Microsoft.EntityFrameworkCore;"
fuente
Para asp.net core versión 2.1, asegúrese de agregar el siguiente paquete para solucionar el problema. (Al menos esto soluciona el problema usando SQLite)
Aquí está la referencia de la documentación que usa SQLite con entidad framework core. https://docs.microsoft.com/en-us/ef/core/get-started/netcore/new-db-sqlite
fuente
Tuve este problema, parece que no había agregado los paquetes NuGet requeridos, aunque pensé que lo había hecho, asegúrese de verificarlos, uno por uno.
fuente
Actualmente trabajando con Entity Framework Core 3.1.3. Ninguna de las soluciones anteriores solucionó mi problema.
Sin embargo, la instalación del paquete Microsoft.EntityFrameworkCore.Proxies en mi proyecto solucionó el problema. Ahora puedo acceder a la llamada al método UseLazyLoadingProxies () al configurar mis opciones de DBContext.
Espero que esto ayude a alguien. Ver el siguiente artículo:
Carga perezosa en EF Core
fuente
Paquete de instalación:
luego agregue la parte superior de su clase:
eso funcionó para mí
fuente
Tuve que usar la línea
en el método ConfigureServices en Startup.cs
fuente
Copiar el siguiente código en TodoApi.csproj desde https://github.com/aspnet/Docs/tree/master/aspnetcore/tutorials/first-web-api/sample/TodoApi resolvió un problema similar para mí.
Microsoft.AspNetCore.All puede ser excesivo pero incluye EntityFrameworkCore
fuente
Instale el paquete NuGet
Microsoft.EntityFrameworkCore.SqlServer
para resolver este problema.Estoy usando Core Version 3.1
fuente