2
respostas

erro no SaveChanges

ao executar o código:

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 p1 = new Produto();
            p1.Nome = "Harry Potter e a Ordem da Fênix";
            p1.Categoria = "Livros";
            p1.Preco = 19.89;

            Produto p2 = new Produto();
            p2.Nome = "Senhor dos Anéis 1";
            p2.Categoria = "Livros";
            p2.Preco = 19.89;

            Produto p3 = new Produto();
            p3.Nome = "O Monge e o Executivo";
            p3.Categoria = "Livros";
            p3.Preco = 19.89;
            using (var contexto = new LojaContext())
            {
                contexto.Produtos.Add(p1);
                contexto.Produtos.Add(p2);
                contexto.Produtos.Add(p3);
                contexto.SaveChanges();
            }
        }

        private static void GravarUsandoAdoNet()
        {
        }
    }
}

o programa me lança a seguinte exception:

System.Data.SqlClient.SqlException: 'Cannot open database "LojaDB" requested by the login. The login failed.

onde será que está o erro?

2 respostas

Cara pelo erro parece estar errado a sua string de conexão. Não lembro exatamente onde foi configurado no curso, mas ela esta ao no Startup.cs ou no seu app.config

Da uma olhada de os parâmetros estão corretos, e principalmente se tem o User e Password na string de conexão com o banco de dados.

Opa dei uma passada de olho aqui nas aulas e verifiquei que a string de conexão esta no OnConfiguring do Context.

Bom como descobrir qual string de conexão usar, vai no seu Pesquisador de Objetos do SQL Server no visual studio e clica com botao direito em cima do banco de dados que você criou e vai em Properties (Propriedades).

Um das propriedades que vai aparecer é a Cadeia de Conexão (ConnectionString), ela é a string necessária que deves utilizar no método OnConfiguring do seu Context. Lembre-se que a formatação que o OnConfiguring te retorna não é exatamente a que o metodo da esperando. Se não me engano é so escapar com @ antes da string que vai funcionar.

Qualquer coisa estamos ai.