Eu sou novo no EF core e estou tentando fazê-lo funcionar com meu projeto ASP.NET Core.
Eu recebo o erro acima no meu startup.cs
ao tentar configurar o DbContext
para usar uma seqüência de conexão de configuração. Estou seguindo este tutorial: https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/intro
O código problemático em 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));
}
O UseSqlServer
método é reconhecido se eu o colocar diretamente no 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 a minha pesquisa on-line aponta para referências ausentes, mas não consigo descobrir qual delas está faltando ( veja a imagem ).
asp.net-core
entity-framework-core
Maxime Laflamme
fonte
fonte
Respostas:
Esse é um problema conhecido no sistema do projeto. Veja dotnet / project-system # 1741
fonte
Primeiro, instalamos o pacote NuGet Microsoft.EntityFrameworkCore.SqlServer :
Depois de importar o espaço para nome com
nós adicionamos o contexto do banco de dados:
fonte
adicionando
using Microsoft.EntityFrameworkCore;
manualmente resolveu o problema para mim
Descobri que aqui
Editar...
para dotnet core 3.1 add
Microsoft.EntityFrameworkCore.SqlServer
fonte
Instalar abaixo do Pacote NuGet resolverá seu problema
Microsoft.EntityFrameworkCore.SqlServer
fonte
O pacote está ausente. Abra o Console do Gerenciador de Pacotes e execute o código abaixo:
fonte
Siga os passos abaixo.
Instale o provedor de banco de dados do Entity Framework Core Design e do SQL Server para o Entity Framework Core:
Importar estrutura da entidade principal:
E configure seu DbContext:
fonte
Eu estava usando o Visual Studio Code.
1) Tente instalar o pacote 'Microsoft.EntityFrameworkCore.SqlServer' especificando o número da versão.
Código VS :
'dotnet add package Microsoft.EntityFrameworkCore.SqlServer -v 1.1.1'
Estúdio visual:-
'Pacote de instalação Microsoft.EntityFrameworkCore.SqlServer -v 1.1.1'
Consulte o link ' Package' Microsoft.EntityFrameworkCore.SqlServer 'é incompatível com as estruturas' all 'no projeto ' para fazer isso.
2) Em seguida, adicione o espaço para nome ' usando Microsoft.EntityFrameworkCore; 'manualmente no arquivo Startup.cs.
Consulte o link abaixo https://github.com/aspnet/EntityFramework/issues/7891 .
3) Se você encontrar qualquer problema de dependência do ' Microsoft.EntityFrameworkCore.SqlServer.Design' , como "Pacote ' Microsoft.EntityFrameworkCore.Design' é incompatível com as estruturas 'all' no projeto ", precisamos executar o comando abaixo,
Código VS: -
dotnet add package Microsoft.EntityFrameworkCore.Design -v 1.1
Estúdio visual
Pacote de Instalação Microsoft.EntityFrameworkCore.Design -v 1.1
fonte
Projeto -> ManageNugetPackages -> Navegar -> Pesquise "Microsoft.EntityFrameworkCore.SqlServer" e instale ou atualize.
fonte
Conforme mencionado na resposta de pontuação mais alta do Win, pode ser necessário instalar o Pacote NuGet do Microsoft.EntityFrameworkCore.SqlServer, mas observe que esta pergunta está usando o asp.net core mvc. No mais recente ASP.NET Core 2.1, a MS incluiu o que é chamado de metapacote chamado Microsoft.AspNetCore.App
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/metapackage-app?view=aspnetcore-2.2
Você pode ver a referência a ele se clicar com o botão direito do mouse no projeto ASP.NET Core MVC no gerenciador de soluções e selecionar
Edit Project File
Você deve ver esse metapacote se o núcleo do ASP.NET aplicar a instrução using
<PackageReference Include="Microsoft.AspNetCore.App" />
Microsoft.EntityFrameworkCore.SqlServer está incluído neste metapacote. Portanto, no seu Startup.cs, talvez você precise adicionar apenas:
using Microsoft.EntityFrameworkCore;
fonte
Acredito que isso possa ser resolvido adicionando uma referência de projeto ao Microsoft.EntityFrameworkCore.SqlServer.Design
O Microsoft.EntityFrameworkCore.SqlServer não foi instalado diretamente no meu projeto, mas o pacote .Design o instalará de qualquer maneira como pré-requisito.
fonte
Para mim, esse problema ocorreu com o Visual Studio Code e eu pude corrigir com 2 etapas:
using Microsoft.EntityFrameworkCore;
dotnet build
no terminal.fonte
No Visual Studio, verifique o NuGet Package Manager => Gerenciar pacotes para solução , verifique todos esses pacotes, instalados ou não na sua solução, conforme abaixo:
Resolvi os mesmos problemas depois de verificar se todos os pacotes acima foram instalados.
fonte
Instale o pacote, EntityFrameworkCore.SqlServer:
Nuget: https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.SqlServer/
fonte
primeiro adicione
Install-Package Microsoft.EntityFrameworkCore.SqlServer
próximo adicione no seu arquivo .cs
using Microsoft.EntityFrameworkCore;
finalmente adicione isso no seu núcleo
Startup.cs
fonte
. Eu acho que esse é o problema com a versão do Sqlite, tive o mesmo problema quando estava usando essas versões do SqLite
Versão 2.2.4 :
Depois de verificar a versão aqui , mudei a versão e funcionou.
Nenhum erro após usar este
Versão 2.1.2 :
fonte
Eu contornei isso simplesmente:
Adicionar
SqlServerDbContextOptionsExtensions
à turma em questãoSqlServerDbContextOptionsExtensions
Isso corrige o problema. Deve estar faltando alguma referência por padrão.
fonte
Para quem ainda está com esse problema: Use o NuGet para instalar: Microsoft.EntityFrameworkCore.Proxies
Esse problema está relacionado ao uso do Castle Proxy com EFCore.
fonte
Uau, tantas respostas, mas nenhuma mencionou este pacote Microsoft.EntityFrameworkCore.InMemory !
Adicione a referência a este pacote:
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="2.2.2" />
e você deve estar pronto.fonte
Tive este problema quando mudei para Microsoft.EntityFrameworkCore.SqlServer v3.0.0 e Microsoft.EntityFrameworkCore.Tools v3.0.0
Quando voltei para a v2.2.6 nas duas bibliotecas, o erro desapareceu. Isso é mais uma solução alternativa do que uma solução, mas o colocará em funcionamento até que o problema seja resolvido.
fonte
Mensagem de erro:
Solução:
para instalar "microsoft.entityframeworkcore.sqlserver" com o NuGet
Fixed:
PS: verifique se você está usando EF no conteúdo "using Microsoft.EntityFrameworkCore;"
fonte
Para o asp.net core versão 2.1, adicione o seguinte pacote para corrigir o problema. (Pelo menos, isso corrige o problema usando o SQLite)
Aqui está a referência da documentação usando o SQLite com o núcleo da estrutura da entidade. https://docs.microsoft.com/en-us/ef/core/get-started/netcore/new-db-sqlite
fonte
Eu tive esse problema, parece que não havia adicionado os pacotes NuGet necessários, embora tenha pensado em fazê-lo, verifique-os, um por um.
fonte
Atualmente trabalhando com o Entity Framework Core 3.1.3. Nenhuma das soluções acima corrigiu meu problema.
No entanto, a instalação do pacote Microsoft.EntityFrameworkCore.Proxies no meu projeto corrigiu o problema. Agora eu posso acessar a chamada do método UseLazyLoadingProxies () ao definir minhas opções de DBContext.
Espero que isso ajude alguém. Veja o seguinte artigo:
Carregamento lento no EF Core
fonte
Pacote de instalação:
adicione o topo da sua turma:
isso funcionou para mim
fonte
Eu tive que usar a linha
no método ConfigureServices em Startup.cs
fonte
A cópia do código a seguir no TodoApi.csproj em https://github.com/aspnet/Docs/tree/master/aspnetcore/tutorials/first-web-api/sample/TodoApi resolveu um problema semelhante para mim.
Microsoft.AspNetCore.All pode ser excessivo, mas inclui EntityFrameworkCore
fonte
Instale o pacote NuGet
Microsoft.EntityFrameworkCore.SqlServer
para resolver esse problema.Estou usando a versão 3.1 do núcleo
fonte