Как использовать реализацию IDesignTimeDbContextFactory в ASP.NET Core 2.1? - PullRequest
0 голосов
/ 12 июня 2018

У меня есть проект ASP.NET Core 1.1, который я пытаюсь преобразовать в v2.1.Я нашел IDesignTimeDbContextFactory реализацию, но я не понимаю, где я должен создать экземпляр этой фабрики и как использовать его для нормальной работы миграций.Теперь перед созданием / удалением миграции я должен очистить и перестроить решение, потому что если нет, я получу это сообщение: Unable to create an object of type 'MyDbContext'. Add an implementation of 'IDesignTimeDbContextFactory<MyDbContext>' to the project, or see https://go.microsoft.com/fwlink/?linkid=851728 for additional patterns supported at design time.Все данные контекста находятся в отдельном проекте.Как использовать IDesignTimeDbContextFactory реализацию или что я делаю не так?

1 Ответ

0 голосов
/ 20 сентября 2018

Добавьте этот класс в папку, где у вас есть DbContext.

public class MyDbContextFactory : IDesignTimeDbContextFactory<MyDbContext>
    {      

        MyDbContext IDesignTimeDbContextFactory<MyDbContext>.CreateDbContext(string[] args)
        {
            IConfigurationRoot configuration = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json")
                .Build();

            var builder = new DbContextOptionsBuilder<MyDbContext>();
            var connectionString = configuration.GetConnectionString("DefaultConnection");

            builder.UseSqlServer(connectionString);

            return new MyDbContext(builder.Options);
        }
    }
...