2
respostas

Perdeu as referências do Entity Framework

Fui abrir minha solução para continuar os estudos e as referências do Entity haviam sumido. Tento fazer a instalação novamente pelo console e ele apresenta a seguinte mensagem de erro:

Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 1.1

Install-Package : Não foi possível instalar o pacote 'System.Runtime.InteropServices.RuntimeInformation 4.3.0'. Você está tentando instalar este pacote em um projeto que se destina a '.NETFramework,Version=v4.6.1', mas o pacote não contém nenhuma referência de assembly ou arquivo de conteúdo que seja compatível com essa estrutura. Para obter mais informações, entre em contato com o autor do pacote. No linha:1 caractere:1 + Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 1.1 + ~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Exception + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Se alguém puder me ajudar. Obrigado.

2 respostas

Oi Alexandre, tudo bom?

Parece ser um problema de compatibilidade entre a versão do SqlServer que você está tentando instalar (1.1) e o entityFrameworkCore que você tem (4.6.1).

Talvez tentando instalar uma versão mais recente do pacote o problema seja resolvido. Algo como:

Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.0.0

Aguardo retorno.

Abraço!

Obrigado pelo retorno André. Eu fiz todo o processo novamente de instalação em outra máquina utilizando o Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 1.1 e tudo correu como esperado, consigo continuar o curso.

Mas a máquina que eu relatei o problema, seguindo sua recomendação instalando a versão 2.0.0, as referências foram adicionadas e o código parou de dar erro. Mas quando tento salvar o registro no banco apresenta o seguinte erro na Classe de Contexto:

+$exception {"Não foi possível carregar arquivo ou assembly 'Remotion.Linq, Version=2.1.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b' ou uma de suas dependências. O sistema não pode encontrar o arquivo especificado.":"Remotion.Linq, Version=2.1.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b"} System.IO.FileNotFoundException

//Main

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;

namespace Alura.Loja.Testes.ConsoleApp { class Program { static void Main(string[] args) { //GravarUsandoAdoNet(); GravarUsandoEntity(); }

private static void GravarUsandoEntity() { Produto p = new Produto(); p.Nome = "Harry Potter e a Ordem da Fênix"; p.Categoria = "Livros"; p.Preco = 19.89;

using (var contexto = new LojaContext()) { contexto.Produtos.Add(p); contexto.SaveChanges(); } }

private static void GravarUsandoAdoNet() { Produto p = new Produto(); p.Nome = "Harry Potter e a Ordem da Fênix"; p.Categoria = "Livros"; p.Preco = 19.89;

using (var repo = new ProdutoDAO()) { repo.Adicionar(p); } } } }

//LojaContext

using Microsoft.EntityFrameworkCore; using System;

namespace Alura.Loja.Testes.ConsoleApp { public class LojaContext : DbContext { public DbSet Produtos { get; set; }

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer("Server=(localdb)\mssqllocaldb;Database=LojaDB;Trusted_Connection=true;"); } } }

//Produto

namespace Alura.Loja.Testes.ConsoleApp { public class Produto { public int Id { get; internal set; } public string Nome { get; internal set; } public string Categoria { get; internal set; } public double Preco { get; internal set; } } }

Penso que algo foi corrompido nesta máquina pois estava com 39% do curso realizado e ontem quando fui iniciar o Visual Studio o problema começou.