3
respostas

Erro de conexão com o banco de dados durante o processo de logon

Recebi esse erro ao tentar rodar o programa

https://gist.github.com/MarcoCoutinho/e1de853f5bcb5aa391f3cb6d0792adc9

Será no meu SQLServer alguma configuração que preciso mudar?

using Microsoft.EntityFrameworkCore;
using System;

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

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

E na classe 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();
            }
        }
3 respostas

Olá Marco,

encontrei na documentação da microsoft este link com a explicação da possível causa do erro. De qu talvez o seu SqlServer não esteja suportando conexões externas. Neste outro link tem um tutorial do SQL Server Configuration Manager que a Microsoft pede para você usar para configurar estas conexões externas.

An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in Microsoft.EntityFrameworkCore.dll

Additional information: Cannot open database "LojaDB" requested by the login. The login failed.

Pelo erro agora parece que tem algum problema de permissão de login no sql server. Tem que procurar se o seu banco não exige que você use alguma usuário e senha para se conectar com este banco de dados. Este link mostra como alterar a connection string para passar um login e senha se tiver algum nível de permissão de acesso.