Мы получаем эту ошибку после обновления до NHibernate 2.1.
[QueryException: Cannot simultaneously fetch multiple bags.]
NHibernate.Loader.BasicLoader.PostInstantiate() +418
NHibernate.Loader.Entity.EntityLoader..ctor(IOuterJoinLoadable persister, String[] uniqueKey, IType uniqueKeyType, Int32 batchSize, LockMode lockMode, ISessionFactoryImplementor factory, IDictionary`2 enabledFilters) +123
NHibernate.Loader.Entity.BatchingEntityLoader.CreateBatchingEntityLoader(IOuterJoinLoadable persister, Int32 maxBatchSize, LockMode lockMode, ISessionFactoryImplementor factory, IDictionary`2 enabledFilters) +263
NHibernate.Persister.Entity.AbstractEntityPersister.CreateEntityLoader(LockMode lockMode, IDictionary`2 enabledFilters) +26
NHibernate.Persister.Entity.AbstractEntityPersister.CreateLoaders() +57
NHibernate.Persister.Entity.AbstractEntityPersister.PostInstantiate() +1244
NHibernate.Persister.Entity.SingleTableEntityPersister.PostInstantiate() +18
NHibernate.Impl.SessionFactoryImpl..ctor(Configuration cfg, IMapping mapping, Settings settings, EventListeners listeners) +3261
NHibernate.Cfg.Configuration.BuildSessionFactory() +87
Не входя в источник NHibernate, не похоже, что я вижу, какое отображение создает проблему.
Это очень старое приложение с множеством файлов сопоставлений, во многих сопоставлениях есть пакеты «один ко многим», все экземпляры ленивые.
Например:
<bag name="Ownership" lazy="true" cascade="all" inverse="true" outer-join="auto" where="fkOwnershipStatusID!=6">
<key column="fkStakeHolderID"/>
<one-to-many class="StakeholderLib.Ownership,StakeholderLib" />
</bag>
отображается на:
public virtual IList Ownership {
get {
if (ownership == null)
ownership = new ArrayList();
return ownership;
}
set { ownership = value; }
}
Кто-нибудь видел эту ошибку раньше при обновлении до NHibernate 2.1?