using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.Extensions.DependencyInjection; namespace Elsa.EntityFrameworkCore.Common; /// /// Provides options for configuring Elsa's Entity Framework Core integration. /// public class ElsaDbContextOptionsExtension : IDbContextOptionsExtension { /// /// Initializes a new instance of the class. /// /// The options. public ElsaDbContextOptionsExtension(ElsaDbContextOptions? options) { Options = options; } /// /// Gets the options. /// public ElsaDbContextOptions? Options { get; } /// public DbContextOptionsExtensionInfo Info => new CustomDbContextOptionsExtensionInfo(this); /// public void ApplyServices(IServiceCollection services) { } /// public void Validate(IDbContextOptions options) { if(!string.IsNullOrWhiteSpace(Options?.SchemaName) && string.IsNullOrWhiteSpace(Options.MigrationsAssemblyName)) { throw new ArgumentException("MigrationsAssemblyName must be defined for manual migrations"); } } }