Description
Hi,
upgrading the following packages:
NHibernate 5.0.3 -> 5.1.0
Iesi.Collections 4.0.3 -> 4.0.4
Remotion.Linq.EagerFetching 2.1.0 -> 2.2.0
breaks my application (.NET 4.7, Nhibernate, Nhibernate Validator, NHibernate.AspNet.Identity).
The exception is the following
2018-04-06 10:57:25,821 [83] ERROR NHibernate.Proxy.StaticProxyFactory - Creating a proxy instance failed
System.TypeLoadException: Type 'ApplicationUserProxy' from assembly 'ApplicationUserProxyAssembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' is attempting to implement an inaccessible interface.
at System.Reflection.Emit.TypeBuilder.TermCreateClass(RuntimeModule module, Int32 tk, ObjectHandleOnStack type)
at System.Reflection.Emit.TypeBuilder.CreateTypeNoLock()
at System.Reflection.Emit.TypeBuilder.CreateTypeInfo()
at NHibernate.Proxy.NHibernateProxyBuilder.CreateProxyType(Type baseType, IReadOnlyCollection1 baseInterfaces) at NHibernate.Proxy.StaticProxyFactory.CreateProxyActivator(ProxyCacheEntry pke) at NHibernate.Proxy.StaticProxyFactory.<GetProxy>b__2_0(ProxyCacheEntry pke) at System.Collections.Concurrent.ConcurrentDictionary
2.GetOrAdd(TKey key, Func2 valueFactory) at NHibernate.Proxy.StaticProxyFactory.GetProxy(Object id, ISessionImplementor session) 2018-04-06 10:57:25,852 [83] ERROR MyProject.Domain.UnitOfWork.Factory.UnitOfWorkFactory - NHibernate.HibernateException: Creating a proxy instance failed ---> System.TypeLoadException: Type 'ApplicationUserProxy' from assembly 'ApplicationUserProxyAssembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' is attempting to implement an inaccessible interface. at System.Reflection.Emit.TypeBuilder.TermCreateClass(RuntimeModule module, Int32 tk, ObjectHandleOnStack type) at System.Reflection.Emit.TypeBuilder.CreateTypeNoLock() at System.Reflection.Emit.TypeBuilder.CreateTypeInfo() at NHibernate.Proxy.NHibernateProxyBuilder.CreateProxyType(Type baseType, IReadOnlyCollection
1 baseInterfaces)
at NHibernate.Proxy.StaticProxyFactory.CreateProxyActivator(ProxyCacheEntry pke)
at NHibernate.Proxy.StaticProxyFactory.b__2_0(ProxyCacheEntry pke)
at System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func
2 valueFactory)
at NHibernate.Proxy.StaticProxyFactory.GetProxy(Object id, ISessionImplementor session)
--- End of inner exception stack trace ---
at NHibernate.Proxy.StaticProxyFactory.GetProxy(Object id, ISessionImplementor session)
at NHibernate.Tuple.Entity.AbstractEntityTuplizer.CreateProxy(Object id, ISessionImplementor session)
at NHibernate.Persister.Entity.AbstractEntityPersister.CreateProxy(Object id, ISessionImplementor session)
at NHibernate.Event.Default.DefaultLoadEventListener.CreateProxyIfNecessary(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options, IPersistenceContext persistenceContext)
at NHibernate.Event.Default.DefaultLoadEventListener.ProxyOrLoad(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options)
at NHibernate.Event.Default.DefaultLoadEventListener.OnLoad(LoadEvent event, LoadType loadType)
at NHibernate.Impl.SessionImpl.FireLoad(LoadEvent event, LoadType loadType)
at NHibernate.Impl.SessionImpl.InternalLoad(String entityName, Object id, Boolean eager, Boolean isNullable)
at NHibernate.Type.EntityType.ResolveIdentifier(Object id, ISessionImplementor session)
at NHibernate.Type.EntityType.ResolveIdentifier(Object value, ISessionImplementor session, Object owner)
at NHibernate.Engine.TwoPhaseLoad.InitializeEntity(Object entity, Boolean readOnly, ISessionImplementor session, PreLoadEvent preLoadEvent, PostLoadEvent postLoadEvent)
at NHibernate.Loader.Loader.InitializeEntitiesAndCollections(IList hydratedObjects, Object resultSetId, ISessionImplementor session, Boolean readOnly)
at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies, IResultTransformer forcedResultTransformer)
at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies, IResultTransformer forcedResultTransformer)
at NHibernate.Loader.Loader.LoadEntity(ISessionImplementor session, Object id, IType identifierType, Object optionalObject, String optionalEntityName, Object optionalIdentifier, IEntityPersister persister)
at NHibernate.Loader.Entity.AbstractEntityLoader.Load(ISessionImplementor session, Object id, Object optionalObject, Object optionalId)
at NHibernate.Loader.Entity.AbstractEntityLoader.Load(Object id, Object optionalObject, ISessionImplementor session)
at NHibernate.Persister.Entity.AbstractEntityPersister.Load(Object id, Object optionalObject, LockMode lockMode, ISessionImplementor session)
at NHibernate.Event.Default.DefaultLoadEventListener.LoadFromDatasource(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options)
at NHibernate.Event.Default.DefaultLoadEventListener.DoLoad(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options)
at NHibernate.Event.Default.DefaultLoadEventListener.Load(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options)
at NHibernate.Event.Default.DefaultLoadEventListener.ProxyOrLoad(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options)
at NHibernate.Event.Default.DefaultLoadEventListener.OnLoad(LoadEvent event, LoadType loadType)
at NHibernate.Impl.SessionImpl.FireLoad(LoadEvent event, LoadType loadType)
at NHibernate.Impl.SessionImpl.Get(String entityName, Object id)
at NHibernate.Impl.SessionImpl.Get[T](Object id)
at MyProject.Domain.Repository.BaseRepository2.GetById(TKey id) in C:\Users\Matteo\Documents\Projects\MyProject\MyProject.Domain\Repository\BaseRepository.cs:line 18 at MyProject.Services.Implementations.RefreshTokenService.<>c__DisplayClass2_0.<GetToken>b__0(IBaseUnitOfWork uok, IRepositoryFactory repoFactory) in C:\Users\Matteo\Documents\Projects\MyProject\MyProject.Services\Implementations\RefreshTokenService.cs:line 50 at MyProject.Domain.UnitOfWork.Factory.BaseUnitOfWorkFactory.Create(Action
2 action, Func`2 exceptionHandling) in C:\Users\Matteo\Documents\Projects\MyProject\MyProject.Domain\UnitOfWork\Factory\UnitOfWorkFactory.cs:line 28
The ApplicationUser entity is
public class ApplicationUser : NHibernate.AspNet.Identity.IdentityUser { //my properties }
Everything is working correctly with 5.0.3.
I didn't find anything useful in the release notes, is there something that needs to be changed or looked at when upgrading to 5.1?
Thanks in advance