Api/Brizco.Repository/Extensions/DbContextOptionCustomExtens...

56 lines
1.5 KiB
C#

namespace Brizco.Repository.Extensions;
public class DbContextOptionCustomExtensionsInfo(IDbContextOptionsExtension extension)
: DbContextOptionsExtensionInfo(extension)
{
public override bool IsDatabaseProvider { get; }
public override string LogFragment { get; } = string.Empty;
public override int GetServiceProviderHashCode()
{
return Extension.GetHashCode();
}
public override void PopulateDebugInfo(IDictionary<string, string> debugInfo)
{
}
public override bool ShouldUseSameServiceProvider(DbContextOptionsExtensionInfo other)
{
return true;
}
}
public class DbContextOptionCustomExtensions : IDbContextOptionsExtension
{
public DbContextOptionCustomExtensions()
{
Info = new DbContextOptionCustomExtensionsInfo(this);
}
public Assembly ProjectAssembly { get; set; } = Assembly.GetExecutingAssembly();
public void ApplyServices(IServiceCollection services)
{
}
public void Validate(IDbContextOptions options)
{
}
public DbContextOptionsExtensionInfo Info { get; }
}
public static class ApplicationContextExtensions
{
public static DbContextOptionsBuilder UseProjectAssembly(this DbContextOptionsBuilder contextOptions,
Assembly projectAssembly)
{
var extension = new DbContextOptionCustomExtensions
{
ProjectAssembly = projectAssembly
};
((IDbContextOptionsBuilderInfrastructure)contextOptions).AddOrUpdateExtension(extension);
return contextOptions;
}
}