2

NHibernate を 2.xx から 3.3 にアップグレードしました。うまく機能しますが、いくつかの使用法があります

SetResultTransformer(new DistinctRootEntityResultTransformer())

そして今、実行時に「インデックスが配列の境界外でした」という例外が発生します

.List<Entity>()

スタック トレースは、エラーの原因を示しています。 at NHibernate.Type.TypeHelper.Disassemble(Object[] row, ICacheAssembler[] types, Boolean[] nonCacheable, ISessionImplementor session, Object owner) at NHibernate.Cache.StandardQueryCache.Put(QueryKey key, ICacheAssembler[] returnTypes, IList result, Boolean isNaturalKeyLookup, ISessionImplementor session) at NHibernate.Loader.Loader.PutResultInQueryCache(ISessionImplementor session, QueryParameters queryParameters, IType[] resultTypes, IQueryCache queryCache, QueryKey key, IList result) at NHibernate.Loader.Loader.ListUsingQueryCache(ISessionImplementor session, QueryParameters queryParameters, ISet1 querySpaces, IType[] resultTypes) at NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet1 querySpaces, IType[] resultTypes) at NHibernate.Loader.Criteria.CriteriaLoader.List(ISessionImplementor session) at NHibernate.Impl.SessionImpl.List(CriteriaImpl criteria, IList results)

手がかりはありますか?

これを見つけました: https://nhibernate.jira.com/browse/NH-2961

そして、fetchmode.joinまたはdistinctrootentitytransformerまたはキャッシュを削除すると、機能します。

4

0 に答える 0