After upgrading to NHibernate 2.0 and fixing some issues, I'm getting an SystemOutOfRangeException because System.Collections.ListDictionaryInternal is empty and it propably wants to find something in this list?
I don't what this ListDictionaryInternal is and what is wrong with my mapping file... :(
I assume it still has something to do with the fact i want to use an abstract class with subclasses and a dsicriminator.
This is my mapping file:
Code:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="HPPTCMS.LOGIC.Classes.Article, HPPTCMS.LOGIC" table="HPPTCMS_Article" lazy="true" abstract="true">
<id name="ID" column="id" type="Int64">
<generator class="native" />
</id>
<discriminator column="articlediscriminatorid" type="String"/>
<property name="Title" column="title" type="String" length="255"/>
<subclass name="HPPTCMS.LOGIC.Classes.ProjectItem, HPPTCMS.LOGIC" discriminator-value="20">
<property name="Excerpt" column="excerpt" type="String" length="255"/>
</subclass>
<subclass name="HPPTCMS.LOGIC.Classes.BlogItem, HPPTCMS.LOGIC" discriminator-value="30">
<property name="Body" column="body" type="String" length="255"/>
</subclass>
</class>
</hibernate-mapping>
This is the stack trace:
Code:
bij System.Collections.ArrayList.get_Item(Int32 index)
bij NHibernate.SqlCommand.InFragment.ToFragmentString()
bij NHibernate.Persister.Entity.SingleTableEntityPersister.DiscriminatorFilterFragment(String alias)
bij NHibernate.Persister.Entity.SingleTableEntityPersister.FilterFragment(String alias)
bij NHibernate.Persister.Entity.AbstractEntityPersister.FilterFragment(String alias, IDictionary`2 enabledFilters)
bij NHibernate.Loader.Entity.EntityJoinWalker..ctor(IOuterJoinLoadable persister, String[] uniqueKey, Int32 batchSize, LockMode lockMode, ISessionFactoryImplementor factory, IDictionary`2 enabledFilters)
bij NHibernate.Loader.Entity.EntityLoader..ctor(IOuterJoinLoadable persister, String[] uniqueKey, IType uniqueKeyType, Int32 batchSize, LockMode lockMode, ISessionFactoryImplementor factory, IDictionary`2 enabledFilters)
bij NHibernate.Loader.Entity.EntityLoader..ctor(IOuterJoinLoadable persister, Int32 batchSize, LockMode lockMode, ISessionFactoryImplementor factory, IDictionary`2 enabledFilters)
bij NHibernate.Loader.Entity.EntityLoader..ctor(IOuterJoinLoadable persister, LockMode lockMode, ISessionFactoryImplementor factory, IDictionary`2 enabledFilters)
bij NHibernate.Loader.Entity.BatchingEntityLoader.CreateBatchingEntityLoader(IOuterJoinLoadable persister, Int32 maxBatchSize, LockMode lockMode, ISessionFactoryImplementor factory, IDictionary`2 enabledFilters)
bij NHibernate.Persister.Entity.AbstractEntityPersister.CreateEntityLoader(LockMode lockMode, IDictionary`2 enabledFilters)
bij NHibernate.Persister.Entity.AbstractEntityPersister.CreateEntityLoader(LockMode lockMode)
bij NHibernate.Persister.Entity.AbstractEntityPersister.CreateLoaders()
bij NHibernate.Persister.Entity.AbstractEntityPersister.PostInstantiate()
bij NHibernate.Persister.Entity.SingleTableEntityPersister.PostInstantiate()
bij NHibernate.Impl.SessionFactoryImpl..ctor(Configuration cfg, IMapping mapping, Settings settings, EventListeners listeners)
bij NHibernate.Cfg.Configuration.BuildSessionFactory()
bij HPPTCMS.DATA.DAO.NHibernateSessionManager.InitSessionFactory() in C:\Mijn Projecten\HPPTCMS\HPPTCMSPortals\HPPTCMS\HPPTCMS.DATA\DAO\NHibernateSessionManager.cs:regel 53
bij HPPTCMS.DATA.DAO.NHibernateSessionManager..ctor() in C:\Mijn Projecten\HPPTCMS\HPPTCMSPortals\HPPTCMS\HPPTCMS.DATA\DAO\NHibernateSessionManager.cs:regel 36
bij HPPTCMS.DATA.DAO.NHibernateSessionManager.Nested..cctor() in C:\Mijn Projecten\HPPTCMS\HPPTCMSPortals\HPPTCMS\HPPTCMS.DATA\DAO\NHibernateSessionManager.cs:regel 45