Estoy intentando conectarme a mi aplicación ASP.NET Core Web API (.NET 6 en Visual Studio 2022 Preview) con SQL Server. Y traté de usar el siguiente código para configurar la cadena de conexión en la clase de Startup como solía hacerlo.
services.AddDbContext<DEMOWTSSPortalContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); Pero en .NET 6, reconozco que las clases de Startup y Program se fusionan en una sola clase. Y el código anterior no se puede usar en .NET 6. No se reconoce AddDbContext . Entonces, ¿tiene alguna idea o documentación sobre esta actualización y cómo configurar cadenas de conexión en .NET 6?
.Net 6 simplifica muchas tareas e introduce WebApplicationBuilder , que a su vez le da acceso al nuevo generador de configuración y colección de servicios.
var builder = WebApplication.CreateBuilder(args);Propiedades
Configuration : una colección de proveedores de configuración para que la aplicación los componga. Esto es útil para agregar nuevas fuentes de configuración y proveedores.
Environment : proporciona información sobre el entorno de alojamiento web que se ejecuta una aplicación.
Host : un IHostBuilder para configurar propiedades específicas del host, pero no para construir. Para compilar después de la configuración, llame a Build().
Registro: una colección de proveedores de registro para que la aplicación los componga. Esto es útil para agregar nuevos proveedores de registro.
Services : una colección de servicios para que la aplicación los componga. Esto es útil para agregar servicios proporcionados por el usuario o proporcionados por el marco.
WebHost : un IWebHostBuilder para configurar propiedades específicas del servidor, pero no para construir. Para compilar después de la configuración, llame a Build().
Para agregar un DbContext al Di Container y configurarlo, hay muchas opciones, sin embargo, la más sencilla es
builder.Services.AddDbContext<SomeDbContext>(options => { options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")); });paquetes de nugets
Microsoft.EntityFrameworkCoreMicrosoft.EntityFrameworkCore.SqlServer para usar UseSqlServerConfiguration.GetConnectionString(string connName) en .NET6 está bajo el constructor:
var builder = WebApplication.CreateBuilder(args); string connString = builder.Configuration.GetConnectionString("DefaultConnection");también AddDbContext() está bajo builder.Services:
builder.Services.AddDbContext<YourContext>(options => { options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")); });