diff --git a/src/NHibernate/Async/Loader/Loader.cs b/src/NHibernate/Async/Loader/Loader.cs index 4a2bcab0131..688506668f0 100644 --- a/src/NHibernate/Async/Loader/Loader.cs +++ b/src/NHibernate/Async/Loader/Loader.cs @@ -706,7 +706,9 @@ private async Task LoadFromResultSetAsync(DbDataReader rs, int i, object obj, st object id = key.Identifier; // Get the persister for the _subclass_ - ILoadable persister = (ILoadable)Factory.GetEntityPersister(instanceClass); + ILoadable persister = instanceClass == rootPersister.EntityName + ? rootPersister + : (ILoadable) Factory.GetEntityPersister(instanceClass); if (Log.IsDebugEnabled()) { diff --git a/src/NHibernate/Loader/Loader.cs b/src/NHibernate/Loader/Loader.cs index c85f3fc91b5..aba2d5780c5 100644 --- a/src/NHibernate/Loader/Loader.cs +++ b/src/NHibernate/Loader/Loader.cs @@ -1062,7 +1062,9 @@ private void LoadFromResultSet(DbDataReader rs, int i, object obj, string instan object id = key.Identifier; // Get the persister for the _subclass_ - ILoadable persister = (ILoadable)Factory.GetEntityPersister(instanceClass); + ILoadable persister = instanceClass == rootPersister.EntityName + ? rootPersister + : (ILoadable) Factory.GetEntityPersister(instanceClass); if (Log.IsDebugEnabled()) {