1
resposta

Erro em Startup ao inserir: services.AddTransient<ILeilaoDao, LeilaoDaoComEfCore>();

Erro CS00311

Severity Code Description Project File Line Suppression State Error CS0311 The type 'Alura.LeilaoOnline.WebApp.LeilaoDaoComEfCore' cannot be used as type parameter 'TImplementation' in the generic type or method 'ServiceCollectionServiceExtensions.AddTransient<TService, TImplementation>(IServiceCollection)'. There is no implicit reference conversion from 'Alura.LeilaoOnline.WebApp.LeilaoDaoComEfCore' to 'Alura.LeilaoOnline.WebApp.Dados.ILeilaoDao'. Alura.LeilaoOnline.WebApp D:\OneDrive\Repos\dgsilveira\api_leilaoOnline\src\Alura.LeilaoOnline.WebApp\Startup.cs 12 Active

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Douglas,

Não tenho certeza, mas está parecendo que a classe "LeilaoDaoComEfCore" não está herdando "ILeilaoDao".

Por favor, veja se o seu código está igual ao meu:

Classe "LeilaoDaoComEfCore":

using System.Collections.Generic;
using System.Linq;
using Microsoft.EntityFrameworkCore;
using Alura.LeilaoOnline.WebApp.Models;

namespace Alura.LeilaoOnline.WebApp.Dados.EfCore
{
    public class LeilaoDaoComEfCore : ILeilaoDao
    {
        AppDbContext _context;

        public LeilaoDaoComEfCore()
        {
            _context = new AppDbContext();
        }

        public IEnumerable<Categoria> BuscarCategorias()
        {
            return _context.Categorias.ToList();
        }

        public IEnumerable<Leilao> BuscarTodos()
        {
            return _context.Leiloes
                .Include(l => l.Categoria)
                .ToList();
        }

        public Leilao BuscarPorId(int id)
        {
            //return _context.Leiloes.Find(id);
            return _context.Leiloes.First(l => l.Id == id);
        }

        public void Incluir(Leilao leilao)
        {
            _context.Leiloes.Add(leilao);
            _context.SaveChanges();
        }

        public void Alterar(Leilao leilao)
        {
            _context.Leiloes.Update(leilao);
            _context.SaveChanges();
        }

        public void Excluir(Leilao leilao)
        {
            _context.Leiloes.Remove(leilao);
            _context.SaveChanges();
        }
    }
}

Interface "ILeilaoDao":

using Alura.LeilaoOnline.WebApp.Models;

namespace Alura.LeilaoOnline.WebApp.Dados
{
    public interface ILeilaoDao : ICommand<Leilao>, IQuery<Leilao>
    {

    }
}

[]'s,

Fabio I.