blo*_*s4t 3 console-application dbcontext entity-framework-core .net-6.0
我正在编写一个 .NET 6 控制台应用程序,下面有未完成的代码。我不知道如何从配置中获取连接字符串,以便将其传递给该options.UseSqlServer方法。
我更喜欢使用顶级报表模板。
另外,我应该hostBuilder.Build().Run();在这段代码的末尾调用吗?要不就hostBuilder.Build()?只是想知道有什么区别。
var hostBuilder = Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((context, builder) =>
{
builder.SetBasePath(Directory.GetCurrentDirectory());
})
.ConfigureServices((context, services) =>
{
services.AddDbContext<CompanyContext>(options => options.UseSqlServer("<connection string from config"));
});
Run Code Online (Sandbox Code Playgroud)
ASP.NET Core Web 应用程序实际上是启动 HTTP 服务器的控制台应用程序。两种情况下的 DI、日志记录、配置基础设施是相同的。您在ASP.NET Core 教程中看到的相同方法可以通过通用主机生成器在控制台应用程序中使用。
该配置可通过委托的HostBuilderContextConfigureServices参数获得:
.ConfigureServices((context, services) =>
{
var cns=context.Configuration.GetConnectionString("MyConnection");
services.AddDbContext<CompanyContext>(options.UseSqlServer(cns));
});
Run Code Online (Sandbox Code Playgroud)
.NET (Core) 6.0 中引入的类WebApplicationBuilder仍然在底层使用 Microsoft.Extensions.Hosting 中间件,但将Services、Configuration等公开Logging为属性,而不是像ConfigureServices启用顶级和最小 API 程序那样的方法。
| 归档时间: |
|
| 查看次数: |
7520 次 |
| 最近记录: |