From 07f63b7cb809eab1a0141ad9e9dc9294fd82859f Mon Sep 17 00:00:00 2001 From: Matthew Knutson Date: Wed, 28 Jan 2026 12:19:29 -0600 Subject: [PATCH] Switch from ImplementationType to ServiceType. Previously, CoreAdmin would not detect tables from a DbContext configured with AddDbContextPool(). This was because AddDbContextPool() sets service.ImplementationFactory instead of service.ImplementationType. --- .../CoreAdminConfigurationExtensions.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/DotNetEd.CoreAdmin/CoreAdminConfigurationExtensions.cs b/src/DotNetEd.CoreAdmin/CoreAdminConfigurationExtensions.cs index 9fddd65..9305f3a 100644 --- a/src/DotNetEd.CoreAdmin/CoreAdminConfigurationExtensions.cs +++ b/src/DotNetEd.CoreAdmin/CoreAdminConfigurationExtensions.cs @@ -118,12 +118,12 @@ private static void FindDbContexts(IServiceCollection services, CoreAdminOptions var discoveredServices = new List(); foreach (var service in services.ToList()) { - if (service.ImplementationType == null) + if (service.ServiceType == null) continue; - if (service.ImplementationType.IsSubclassOf(typeof(DbContext)) && - !discoveredServices.Any(x => x.DbContextType == service.ImplementationType)) + if (service.ServiceType.IsSubclassOf(typeof(DbContext)) && + !discoveredServices.Any(x => x.DbContextType == service.ServiceType)) { - foreach (var dbSetProperty in service.ImplementationType.GetProperties()) + foreach (var dbSetProperty in service.ServiceType.GetProperties()) { // looking for DbSet if (dbSetProperty.PropertyType.IsGenericType && dbSetProperty.PropertyType.Name.StartsWith("DbSet")) @@ -131,7 +131,7 @@ private static void FindDbContexts(IServiceCollection services, CoreAdminOptions if (!options.IgnoreEntityTypes.Contains(dbSetProperty.PropertyType.GenericTypeArguments.First())) { discoveredServices.Add(new DiscoveredDbSetEntityType() { - DbContextType = service.ImplementationType, + DbContextType = service.ServiceType, DbSetType = dbSetProperty.PropertyType, UnderlyingType = dbSetProperty.PropertyType.GenericTypeArguments.First(), Name = dbSetProperty.Name }); }