Service Collection
La clase ServiceCollectionExtensions
proporciona un conjunto de métodos de extensión que facilitan la configuración e integración de CodeDesignPlus.Net.EFCore
en proyectos .NET. Estas extensiones permiten agregar configuraciones de EFCore y registrar repositorios de forma automática, promoviendo una mayor organización y reduciendo el código repetitivo.
Dependencias y Requisitos Previos
Microsoft.Extensions.DependencyInjection
: Necesario para la interfazIServiceCollection
.Microsoft.Extensions.Configuration
: Necesario para la interfazIConfiguration
.Microsoft.Extensions.Options
: Necesario para la configuración de opciones.
Escenarios de Uso
Este conjunto de métodos de extensión es particularmente útil en aplicaciones que:
- Utilizan EFCore como su ORM principal.
- Necesitan centralizar y validar la configuración de opciones relacionadas con EFCore.
- Desean registrar automáticamente repositorios en el contenedor de dependencias.
Beneficios
- Centraliza la configuración de EFCore en el archivo
appsettings.json
. - Simplifica el registro de servicios y repositorios en el contenedor de dependencias.
- Reduce la posibilidad de errores al validar automáticamente las opciones configuradas.
Ejemplo Práctico
En este ejemplo, utilizaremos las extensiones AddEFCore
para configurar EFCore y registrar automaticamente los repositorios en el contenedor de dependencias de una aplicación ASP.NET Core. Primero, definiremos las opciones de configuración en el archivo appsettings.json
:
{ "EFCore": { "Enable": true, "RegisterRepositories": true }}
Luego, en el método ConfigureServices
de la clase Startup
, utilizaremos las extensiones AddEFCore
para configurar EFCore y registrar los repositorios en el contenedor de dependencias:
public class Startup{ public void ConfigureServices(IServiceCollection services) { serviceCollection.AddDbContext<OrderContext>(options => { options.UseSqlServer(configuration.GetConnectionString("DefaultConnection"), x => { x.EnableRetryOnFailure(5, TimeSpan.FromSeconds(10), null); }); });
serviceCollection.AddEFCore<MyDbContext>(configuration); }}
Métodos de extensión
ServiceCollectionExtensions
proporciona una serie de métodos de extensión que facilitan la adición de servicios a la colección de servicios en una aplicación. Estos métodos permiten una configuración más modular y organizada del contenedor de dependencias. A continuación se detallan algunos de los métodos principales:
AddEFCore
Type: public static IServiceCollection AddEFCore<TDbContext>(this IServiceCollection services, IConfiguration configuration) where TDbContext : DbContext
El método AddEFCore
permite agregar configuraciones específicas de EFCore al contenedor de dependencias. Este método simplifica la configuración de EFCore y permite centralizar la configuración en el archivo appsettings.json
. De igual forma, permite registrar automáticamente los repositorios en el contenedor de dependencias cuando la opción RegisterRepositories
está habilitada.
-
Parámetros
- services: La instancia de
IServiceCollection
donde se agregarán los servicios. - configuration: La configuración a la que se enlazarán las opciones.
- services: La instancia de
-
Tipo de Retorno
- Devuelve la instancia de
IServiceCollection
para permitir llamadas encadenadas.
- Devuelve la instancia de
-
Excepciones
- ArgumentNullException: Lanzada si services o configuration es nulo.
- EFCoreException: Lanzada si la sección de configuración requerida no existe.
Conclusiones
Las extensiones de ServiceCollectionExtensions
simplifican la configuración de EFCore y la integración de repositorios en aplicaciones ASP.NET Core. Al centralizar la configuración y el registro de servicios, estas extensiones promueven una mayor organización y facilitan la inyección de dependencias en tu aplicación. Utiliza estas extensiones para mejorar la modularidad y la eficiencia de tu proyecto ASP.NET Core.