Estou fazendo um sistema simples de consulta contato, com base no curso, mas estou com dificuldades em realizar consulta na tabela pela camada controller.
public async Task<IActionResult> Index(string busca)
        {
            var contato = from c in contatoRepository.GetContatos() select c;
            if (!String.IsNullOrEmpty(busca))
            {
                contato = contato.Where(s => s.Nome.Contains(busca));
            }
            return View(await contato.ToListAsync());
        }contatoRepository.GetContatos() é uma referencia ao meu contexto.
Gravidade Código Descrição Projeto Arquivo Linha Estado de Supressão
Erro CS1935 Não foi possível encontrar uma implementação do 
padrão de consulta para o tipo de origem 
"IList<AgendaModel.Contato>". "Select" não encontrado. Está 
faltando uma referência a "System.Core.dll" ou uma diretiva using 
para "System.Linq"? MizuAgenda_Core 
C:\Users\thiagogriao\source\repos\MizuAgenda_Core\MizuAgenda
_Core\Controllers\AgendaController.cs 26 AtivoSe eu adiciono o System.Linq
o erro muda para:
Gravidade Código Descrição Projeto Arquivo Linha Estado de 
Supressão
Erro CS1061 'IEnumerable<AgendaModel.Contato>' não contém 
uma definição para 'ToListAsync' e não foi possível encontrar 
nenhum método de extensão 'ToListAsync' acessível que aceite um 
primeiro argumento do tipo 'IEnumerable<AgendaModel.Contato>' 
(há uma diretiva de uso ou referência de assembly ausente?) 
MizuAgenda_Core C:\Users\thiagogriao\source\repos\MizuAgenda_Core\MizuAgenda_Core
\Controllers\AgendaController.cs 33 Ativo 
            