C# MigrateAsync正在bin文件夹中创建SQLite数据库 公共静态异步任务主(字符串[]args) { var host=CreateHostBuilder(args.Build(); 使用(var scope=host.Services.CreateScope()) { var services=scope.ServiceProvider; var loggerFactory=services.GetRequiredService(); 尝试 { var context=services.GetRequiredService(); wait context.Database.MigrateAsync(); } 捕获(例外情况除外) { var logger=loggerFactory.CreateLogger(); logger.LogError(例如消息); } } 等待host.RunAsync(); } 公共静态IHostBuilder CreateHostBuilder(字符串[]args)=> Host.CreateDefaultBuilder(args) .UseStartup();
我有一个控制台应用程序,我想在应用程序启动时将迁移应用到SQLite数据库。我决定用主要的方法来做这件事。但是,当我运行应用程序时,SQLite数据库将在bin文件夹中创建,而不是在控制台应用程序项目(启动项目)中创建 有没有办法告诉我wait context.Database.MigrateAsync()代码>在启动项目中创建它C# MigrateAsync正在bin文件夹中创建SQLite数据库 公共静态异步任务主(字符串[]args) { var host=CreateHostBuilder(args.Build(); 使用(var scope=host.Services.CreateScope()) { var services=scope.ServiceProvider; var loggerFactory=services.GetRequiredService(); 尝试 { var context=services.GetRequiredService(); wait context.Database.MigrateAsync(); } 捕获(例外情况除外) { var logger=loggerFactory.CreateLogger(); logger.LogError(例如消息); } } 等待host.RunAsync(); } 公共静态IHostBuilder CreateHostBuilder(字符串[]args)=> Host.CreateDefaultBuilder(args) .UseStartup();,c#,asp.net-core,.net-core,entity-framework-core,C#,Asp.net Core,.net Core,Entity Framework Core,我有一个控制台应用程序,我想在应用程序启动时将迁移应用到SQLite数据库。我决定用主要的方法来做这件事。但是,当我运行应用程序时,SQLite数据库将在bin文件夹中创建,而不是在控制台应用程序项目(启动项目)中创建 有没有办法告诉我wait context.Database.MigrateAsync()在启动项目中创建它 我在ASP.NET Core中从未遇到过这个问题,但在控制台应用程序中,数据库是在bin文件夹中创建的。您确定它总是放在bin目录中,还是放在当前的工作目录中,您正在启动程
我在ASP.NET Core中从未遇到过这个问题,但在控制台应用程序中,数据库是在bin文件夹中创建的。您确定它总是放在
bin
目录中,还是放在当前的工作目录中,您正在启动程序,并将bin
作为当前工作目录?啊,是的,这就是问题所在!我在Rider IDE中运行start按钮,但当我用dotnet run
启动程序时,它工作了,并将数据库放在启动项目中:)非常感谢,@BenVoigt如果您愿意,您可以将此作为答案发布。
public static async Task Main(string[] args)
{
var host = CreateHostBuilder(args).Build();
using (var scope = host.Services.CreateScope())
{
var services = scope.ServiceProvider;
var loggerFactory = services.GetRequiredService<ILoggerFactory>();
try
{
var context = services.GetRequiredService<DiscordBotContext>();
await context.Database.MigrateAsync();
}
catch (Exception ex)
{
var logger = loggerFactory.CreateLogger<Program>();
logger.LogError(ex.Message);
}
}
await host.RunAsync();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseStartup<Startup>();