Entity Framework migration

Рейтинг: 0Ответов: 0Опубликовано: 22.04.2023

Проблема такова: я хочу сделать миграцию через EF для базы данных, но при создании миграции получаю ошибку

Unable to create a 'DbContext' of type 'DiscordBot.Db.SqliteApplicationContext'. The exception 'Unable to resolve service for type 'DiscordBot.Core.Intrerfaces.IConfig' while attempting to activate 'DiscordBot.Db.SqliteApplicationContext'.' was thrown while attempting to create an instance. For the different patterns supported at design time, see https://go.microsoft.com/fwlink/?linkid=851728

Оно не может прокинуть IConfig в SqliteApplicationContext. IConfig - это конфиг для базы данных. Так-же есть класс SqliteConfig:

using DiscordBot.Core.Intrerfaces;

namespace DiscordBot.Core.ConfigResults;

public class SqliteConfig : IConfig
{
    public string DataSource { get; set; }

    public string Version { get; set; }
}

Вот класс SqliteApplicationContext:

using DiscordBot.Core.ConfigResults;
using DiscordBot.Core.Intrerfaces;
using DiscordBot.Model.Db.Entities;
using DiscordBot.Model.Db.ModelConfigurators;
using Microsoft.EntityFrameworkCore;

namespace DiscordBot.Db;

public class SqliteApplicationContext : DbContext
{
    private SqliteConfig _sqliteConfig;
    
    public DbSet<User> Users { get; set; }

    public SqliteApplicationContext(IConfig config)
    {
        _sqliteConfig = (SqliteConfig)config;
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.ApplyConfiguration(new UsersModelConfigurator());
    }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite();
    }
}

В чём может быть проблема? Почему оно не может найти SqliteConfig? Я пытался использовать DI, но получал такую же ошибку.

Ответы

Ответов пока нет.