Консольный проект C# с ошибкой миграции: точка входа завершилась без создания IHostC#

Место общения программистов C#
Ответить
Anonymous
 Консольный проект C# с ошибкой миграции: точка входа завершилась без создания IHost

Сообщение Anonymous »

Я пытался создать консольное приложение, которое обрабатывало бы миграцию, следуя этому руководству: https://learn.microsoft.com/en-us/ef/co ... ts?tabs=vs , но, к сожалению, он не работает должным образом.
В главном приложении я добавил это:

Код: Выделить всё

 services.AddDbContext(options =>
options.UseSqlServer(
configuration.GetConnectionString("DefaultConnection"),
x => x.MigrationsAssembly("PA.Seeding")
));
Затем в консольном приложении (PA) класс приложения выглядит следующим образом:

Код: Выделить всё

private static ServiceProvider _serviceProvider;

public static void Init()
{
var serviceCollection = new ServiceCollection();
IConfiguration configuration;

configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetParent(AppContext.BaseDirectory).FullName)
.AddJsonFile("appsettings.json")
.Build();

serviceCollection.AddSingleton(configuration);
serviceCollection.AddSingleton();
serviceCollection.AddDbContext(options =>
options.UseSqlServer(configuration.GetConnectionString("DefaultConnection")));

_serviceProvider = serviceCollection.BuildServiceProvider();
}

public static void StartMigrations()
{
var dbContext = _serviceProvider.GetRequiredService();
dbContext.Database.Migrate();
}
При запуске команды:

Код: Выделить всё

Add-Migration NewMigration -Project PA.Seeding
Вот какую ошибку я получаю:

Код: Выделить всё

An error occurred while accessing the Microsoft.Extensions.Hosting services. Continuing without the application service provider. Error: The entry point exited without ever building an IHost.
Unable to create an object of type 'ADbContext'. For the different patterns supported at design time, see https://go.microsoft.com/fwlink/?linkid=851728
Как устранить эту ошибку?

Подробнее здесь: https://stackoverflow.com/questions/755 ... without-ev
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»