using API.Schema.LibraryConnectors; using log4net; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Diagnostics; namespace API.Schema.Contexts; public class LibraryContext(DbContextOptions options) : DbContext(options) { public DbSet LibraryConnectors { get; set; } private ILog Log => LogManager.GetLogger(GetType()); protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { base.OnConfiguring(optionsBuilder); optionsBuilder.EnableSensitiveDataLogging(); optionsBuilder.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking); optionsBuilder.LogTo(s => { Log.Debug(s); }, [DbLoggerCategory.Query.Name], LogLevel.Trace, DbContextLoggerOptions.Level | DbContextLoggerOptions.Category); } protected override void OnModelCreating(ModelBuilder modelBuilder) { //LibraryConnector Types modelBuilder.Entity() .HasDiscriminator(l => l.LibraryType) .HasValue(LibraryType.Komga) .HasValue(LibraryType.Kavita); } }