Solucionado (ver solução)
Solucionado
(ver solução)
12
respostas

Nuget Add-Migration c#

No Console de gerenciador de pacotes NuGet, eu insiro o comando 'Add-Migration Iniciar', e retorna esse erro

To undo this action, use Remove-Migration. Add-Migration : Exceção ao chamar "AddFromFile" com "1" argumento(s): "Não foi possível adicionar o link porque o arquivo de origem 'C:\Users\Ludgero\Desktop\Alura\Forma��o C#\Banco de dados\Alura.Loja\Alura.Loja.Testes.ConsoleApp\Migrations\20190212003212_Inicial.cs' não foi encontrado." No linha:1 caractere:1

  • Add-Migration Inicial
  • ~
    • CategoryInfo : NotSpecified: (:) [Add-Migration], MethodInvocationException
    • FullyQualifiedErrorId : ComMethodTargetInvocation,Add-Migration
12 respostas

Oi Ludgero, tudo bem? Você pode me passar o link do seu projeto no github? Assim vou poder investigar melhor o problema. Obrigado!

Nao consegui compartilhar projeto no github. Posso passar por e-mail?

Ludgero, se vc enviar por email outras pessoas que estão lendo o tópico não poderão te ajudar (ou serem ajudadas pela resolução de sua dúvida).

Minha sugestão é vc copiar aqui o código de sua classe de contexto e as classes que estão sendo persistidas pelo EF Core.

Pode ser assim?

No alura não tem opção de enviar mensagem? vi que esse erro tinha nesse tópico https://cursos.alura.com.br/forum/topico-add-migration-nao-foi-possivel-adicionar-o-link-porque-o-arquivo-de-origem-nao-foi-encontrado-47485

Porém ele informou na solução erro no código. Queria pergunta para ele o que foi feito.

using Microsoft.EntityFrameworkCore;
using System;

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

        protected override void OnConfiguring(DbContextOptionsBuilder optionBuilder)
        {
            optionBuilder.UseSqlServer("Server=LUDGERO;Database=LojaDB;User ID=sa;Password=229547;Trusted_Connection=true;");
        }
    }
}

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; }

    public override string ToString()
    {
        return $"Id: {this.Id} Título: {this.Nome} Categoria {this.Categoria} Preço: {this.Preco}";
    }
}

}

insira seu código aquiusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Alura.Loja.Testes.ConsoleApp
{
    class ProdutoDAOEntity : IProdutoDao, IDisposable
    {
        private LojaContext contexto;

        public ProdutoDAOEntity()
        {
            this.contexto = new LojaContext();
        }

        public void Adicionar(Produto p)
        {
            contexto.Produtos.Add(p);
            contexto.SaveChanges();            
        }

        public void Excluir(Produto p)
        {
            contexto.Produtos.Remove(p);
            contexto.SaveChanges();
        }

        public void Alterar(Produto p)
        {
            contexto.Produtos.Update(p);
            contexto.SaveChanges();
        }

        public IList<Produto> Produtos()
        {
            return contexto.Produtos.ToList();
        }

        public void Dispose()
        {
            contexto.Dispose();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Alura.Loja.Testes.ConsoleApp
{
    public class FuncoesBanco
    {
        public void Gravar()
        {
            Produto p = new Produto();

            Console.WriteLine("Título: ");
            p.Nome = Console.ReadLine();
            Console.WriteLine("Categoria: ");
            p.Categoria = Console.ReadLine();
            Console.WriteLine("Preço: ");
            p.Preco = Convert.ToDouble(Console.ReadLine());

            using(var contexto = new ProdutoDAOEntity())
            {
                contexto.Adicionar(p);
            }
        }

        public void Excluir()
        {
            using (var repo = new ProdutoDAOEntity())
            {
                var produto = repo.Produtos();
                foreach(var p in produto)
                {
                    repo.Excluir(p);
                }
            }
        }

        public void ListaDados()
        {
            using (var repo = new ProdutoDAOEntity())
            {
                var produto = repo.Produtos();
                Console.WriteLine("Foram encontrados {0} registros", produto.Count);
                foreach (var p in produto)
                {

                    Console.WriteLine(p.ToString());
                    Console.WriteLine();
                }
            }
        }

    }
}
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)
        {            
            ListaMenu();
        }

        private static void ListaMenu()
        {
            var menu = new Menu();
            int codigoMenu = 5;
            while (codigoMenu != 0)
            {
                Console.WriteLine("Digite codigo do Menu: ");
                Console.WriteLine("1-Cadastrar");
                Console.WriteLine("2-Consultar");
                Console.WriteLine("3-Excluir");
                Console.WriteLine("0-Sair");
                codigoMenu = Convert.ToInt32(Console.ReadLine());

                menu.ExecutaMenu(codigoMenu);
            }

        }


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


namespace Alura.Loja.Testes.ConsoleApp
{
    public class Menu
    {


        public void ExecutaMenu(int menu)
        {
            FuncoesBanco funcoes = new FuncoesBanco();
            switch (menu)
            {
                case 0:
                    break;
                case 1:
                    funcoes.Gravar();
                    break;
                case 2:
                    funcoes.ListaDados();
                    break;
                case 3:
                    funcoes.Excluir();
                    break;
                default:
                    break;

            }

        }

        private static void RecuperaDados()
        {
            using (var contexto = new ProdutoDAOEntity())
            {
                IList<Produto> produtos = contexto.Produtos();
                Console.WriteLine("Foram encontrados {0} registros. ", produtos.Count);

                foreach (var p in produtos)
                {
                    Console.WriteLine(p.ToString());

                };

                Console.ReadLine();
            }
        }

    }

}

Oi pessoal só passei por aqui para compartilhar como criar um repositório e subir arquivos no Github sem precisar de linha de comando nem nada. (Porque se pesquisar no google vão querer que você saia dando comandos rsrsrs).

Primeiro de tudo crie uma conta no Github e logue nela. E vá seguindos os passos em azul. Alguma dúvida é só me perguntar. Clique no botão verde New ou arraste os arquivos se não estiver pegando bem a estrutura de pastas pegue a url que está aparecendo na barra de url

Espero ter ajudado!!!

Usando esse método para adicionar arquivos no repositório, não tem como selecionar a pasta e adicionar todos arquivos de uma vez?

Tem sim, dá para fazer assim. Ou ele pode reclamar que tem mais de 100 arquivos então zipa todos os arquivos e joga no reposito o arquivo zipado.

Quando vou comitar mudanças, da esse erro 'Git failed with a fatal error. error: open(".vs/Alura.Loja/v15/Server/sqlite3/db.lock"): Permission denied fatal: Unable to process path .vs/Alura.Loja/v15/Server/sqlite3/db.lock' sabe o que é?

Me parece que algum processo está usando esse arquivo também. Tenta reiniciar o computador.

solução!

Não sei o porquê, mas meu projeto estava em uma pasta na área de trabalho, então eu criei um novo projeto dentro da pasta padrão do visual Studio, rodei o comando e funcionou.

Que bom que encontrou o erro, as vezes acontece coisas parecidas comigo. Aí dou rebuild e às vezes funcionam. Vai tender né!

Bons estudos!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software