C#C
C#2y ago
Lisa

✅ Unable to create migration - 'Unable to resolve service for type 'DbContextOptions'

This is my first time creating migrations (never had a need until now), so please bear with me.

I'm trying to use dotnet ef migrations add AMigrationName to add a migration to my project, However, I get this error:
Unable to create a 'DbContext' of type ''. The exception 'Unable to resolve service for type 'Microsoft.EntityFrameworkCore.DbContextOpt
ions`1[Treehouse_Guardian.Database.DatabaseContext]' while attempting to activate 'Treehouse_Guardian.Database.DatabaseContext'.' was th
rown while attempting to create an instance. For the different patterns supported at design time, see https://go.microsoft.com/fwlink/?l
inkid=851728


My startup looks like this:
private Program()
{
    _configuration = new ConfigurationBuilder()
        .AddJsonFile("appsettings.json", optional: false)
        .Build();

    _serviceProvider = new ServiceCollection()
        .AddSingleton(_configuration)
        .AddSingleton(ConfigureDiscordSocketConfig)
        .AddSingleton(ConfigureDiscordSocketClient)
        .AddSingleton<InteractionService>()
        .AddSingleton<InteractionHandler>()
        .AddSingleton<WritingService.WritingService>()
        .AddSingleton<TreehouseMemberService>()
        .AddSingleton<BenzHandler>()
        .AddSingleton<GniHandler>()
        .AddSingleton<HttpClient>()
        .AddDbContext<DatabaseContext>(ConfigureDbContext)
        .BuildServiceProvider();
    
    Logger.ConfigureLogging();
}


And ConfigureDbContext is just:
private void ConfigureDbContext(DbContextOptionsBuilder optionsBuilder)
{
    optionsBuilder.UseNpgsql(_configuration["Postgres:ConnectionString"]);
}


My databasecontext looks like this:
using Microsoft.EntityFrameworkCore;
using Treehouse_Guardian.Model;

namespace Treehouse_Guardian.Database;

public class DatabaseContext(DbContextOptions<DatabaseContext> options) : DbContext(options)
{
    public DbSet<TreehouseMember> TreehouseMember
    {
        get;
        set;
    }
}


What am I missing? How can I make sure the migration creator can access my dbcontextoptions at design time?
Was this page helpful?