![](/img/trans.png)
[英]WCF service client configuration from appsetting.json (.NET Core)
[英]Setup database context using .NET Core 6.0 from appsetting.json file
我正在开发一个需要添加迁移但它说无法添加迁移的应用程序。 我正在注册startup.cs
但CreateDefaultBuilder
不包含ConfigureWebHostDefaults
的定义。
这是我的代码:
IConfiguration configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.Build();
using var host = Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.Build();
它是一个控制台应用程序。 在startup
类中,我正在注册dbContext
,如下所示:
collection.AddDbContext<DataScrapperContext>(options =>
options.UseSqlServer(configuration.GetConnectionString("DefaultConnection")));
如何使用代码优先的方法在 .NET Core 6.0 中使用控制台应用程序添加迁移?
我已经通过这样做解决了我的问题。 我没有参加启动课程,这里是我的代码和我的注册课程,它就像一个魅力。 我的program.cs包含以下代码。
//Build configuration instance
IConfiguration configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.Build();
//Build logger for the app
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
//Create host & configure services to use in the app
using IHost host = Host.CreateDefaultBuilder(args)
.UseSerilog()
.ConfigureServices(services =>
{
services.ConfigureApplicationServices(configuration);
})
.Build();
这是我的ConfigureApplicationServices类代码。 我还在两者之间配置了 Serilog 。
public static class ApplicationService
{
/// <summary>
/// Registering all the application services with our DI container
/// </summary>
/// <param name="collection"></param>
/// <param name="configuration"></param>
public static void ConfigureApplicationServices(this IServiceCollection collection, IConfiguration configuration)
{
#region [SERVICES REGISTERATIONs]
collection.AddSingleton(configuration);
collection.AddScoped<ICoordinateService, CoordinateService>();
collection.AddScoped<IResponseService, ResponseService>();
collection.AddScoped<RestClientService>();
collection.AddScoped<CoordinatesProccessor>();
#endregion
collection.AddDbContext<DataScrapperContext>(options =>
options.UseSqlServer(configuration.GetConnectionString("DefaultConnection")));
}
}
我已经使用代码优先方法添加了我的迁移。 这可能对使用 .NET Core 6.0 控制台应用程序的人有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.