17

我正在尝试使用 SQL Server 连接到我的 ASP.NET Core Web API 应用程序(Visual Studio 2022 Preview 中的 .NET 6)。并且我尝试像以前Startup一样使用以下代码来配置类中的连接字符串。

services.AddDbContext<DEMOWTSSPortalContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

但是在 .NET 6 中,我认识到StartupProgram被合并为一个类。并且上面的代码在 .NET 6AddDbContext中不可用。无法识别。那么您对此次更新以及如何在 .NET 6 中配置连接字符串有任何想法或文档吗?

4

2 回答 2

37

.NET6 中的 Configuration.GetConnectionString(string connName) 在构建器下:

var builder = WebApplication.CreateBuilder(args);
string connString = builder.Configuration.GetConnectionString("DefaultConnection");

AddDbContext() 也在 builder.Services 下:

builder.Services.AddDbContext<YourContext>(options =>
{
    options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"));

});
于 2021-09-05T11:49:26.920 回答
29

.Net 6简化了许多任务并引入了WebApplicationBuilder这些任务,从而使您可以访问新的配置构建器服务集合

var builder = WebApplication.CreateBuilder(args);

特性

  • Configuration:供应用程序编写的配置提供程序的集合。这对于添加新的配置源和提供程序很有用。

  • Environment:提供有关应用程序正在运行的 Web 托管环境的信息。

  • Host:用于配置主机特定属性但不构建的 IHostBuilder。要在配置后构建,请调用 Build()。

  • Logging :供应用程序编写的日志记录提供程序的集合。这对于添加新的日志记录提供程序很有用。

  • Services:供应用程序编写的服务集合。这对于添加用户提供的或框架提供的服务很有用。

  • WebHost:用于配置服务器特定属性的 IWebHostBuilder,但不用于构建。要在配置后构建,请调用 Build()。

要添加DbContext到 Di Container 并对其进行配置,有很多选项,但最简单的是

builder.Services.AddDbContext<SomeDbContext>(options =>
{
   options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"));
});

Nugets 包

  • Microsoft.EntityFrameworkCore
  • Microsoft.EntityFrameworkCore.SqlServer使用UseSqlServer
于 2021-08-30T08:18:49.030 回答