Eu estudo como escrever API em .NET 8. Criei camada de dados como um serviço, mas quando tento adicionar serviço, AddScoped
estou recebendo exceção de tempo de execução. Como resolver isso?
System.AggregateException: 'Alguns serviços não podem ser construídos
(Erro ao validar o descritor de serviço 'ServiceType: TodoApiDb.Data.ITodoItemsService Lifetime:
Scoped ImplementationType: TodoApiDb.Data.TodoItemsService':
Não é possível resolver o serviço para o tipo 'Microsoft.EntityFrameworkCore.DbSet`1[TodoApiDb.Models.TodoItem]'
ao tentar ativar 'TodoApiDb.Data.TodoItemsService'.)'
Program.cs
:
builder.Services.AddScoped<ITodoItemsService, TodoItemsService>();
ITodoItemsService.cs
:
public interface ITodoItemsService
{
List<TodoItem>? GetAbunch(string[] myAnimals);
}
TodoItemsService.cs
:
public class TodoItemsService: ITodoItemsService
{
private readonly DbSet<TodoItem> _todoItems;
public TodoItemsService(DbSet<TodoItem> todoItems)
{
_todoItems = todoItems;
}
List<TodoItem>? ITodoItemsService.GetAbunch(string[] myAnimals)
{
var animals = _todoItems.Where(i => myAnimals.Contains(i.Name))
.ToList();
return animals;
}
}
Código GitHub do aplicativo API.
Captura de tela do erro no Visual Studio: