Hi Tapio,

The table was deleted, that is fixed now :)

After changing the mapping a littlebit, it seems to be working for the
dictionary. I now have this mapping:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping  assembly="NHibernateDictionaryTest"
                    default-cascade="save-update"
                    default-lazy="false"
                    namespace="NHibernateDictionaryTest"
                    xmlns="urn:nhibernate-mapping-2.2">
  <class name="NotaRow">
    <id name="Id" type="Guid">
      <generator class="assigned" />
    </id>
    <property name="Description" />
    <property name="ToPay" />
    <map name="Children">
      <key column="NotaRowId" />
      <composite-index class="NotaRow">
        <key-property name="Id" />
      </composite-index>
      <!--<index column="NotaRowId" type="Guid" />-->
      <element column="Distribution" type="Decimal" />
    </map>
  </class>
</hibernate-mapping>

But when I try to do it with my own Distribution class I get an
exception (again :P)
The class:
public class Distribution<T> : Dictionary<T, Decimal>, IComparable<T>
, IDictionary<T, Decimal>
{
   // some calculation methods no custom properties
}

The exception:
System.Transactions Critical: 0 : <TraceRecord
xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord";
Severity="Critical"><TraceIdentifier>http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/Unhandled</TraceIdentifier><Description>Unhandled
exception</Description><AppDomain>NHibernateDictionaryTest.vshost.exe</AppDomain><Exception><ExceptionType>NHibernate.MappingException,
NHibernate, Version=2.1.0.1001, Culture=neutral,
PublicKeyToken=aa95f207798dfdb4</ExceptionType><Message>Error mapping
generic collection NHibernateDictionaryTest.NotaRow.Children: expected
2 generic parameters, but the property type has
1</Message><StackTrace>   at
NHibernate.Mapping.Collection.CheckGenericArgumentsLength(Int32
expectedLength)
   at NHibernate.Mapping.Map.get_DefaultCollectionType()
   at NHibernate.Mapping.Collection.get_CollectionType()
   at NHibernate.Mapping.Map.get_CollectionType()
   at NHibernate.Mapping.Collection.get_Type()
   at NHibernate.Tuple.PropertyFactory.BuildStandardProperty(Property
property, Boolean lazyAvailable)
   at NHibernate.Tuple.Entity.EntityMetamodel..ctor(PersistentClass
persistentClass, ISessionFactoryImplementor sessionFactory)
   at NHibernate.Persister.Entity.AbstractEntityPersister..ctor(PersistentClass
persistentClass, ICacheConcurrencyStrategy cache,
ISessionFactoryImplementor factory)
   at 
NHibernate.Persister.Entity.SingleTableEntityPersister..ctor(PersistentClass
persistentClass, ICacheConcurrencyStrategy cache,
ISessionFactoryImplementor factory, IMapping mapping)
   at NHibernate.Persister.PersisterFactory.CreateClassPersister(PersistentClass
model, ICacheConcurrencyStrategy cache, ISessionFactoryImplementor
factory, IMapping cfg)
   at NHibernate.Impl.SessionFactoryImpl..ctor(Configuration cfg,
IMapping mapping, Settings settings, EventListeners listeners)
   at NHibernate.Cfg.Configuration.BuildSessionFactory()
   at NHibernateDictionaryTest.Program.Main(String[] args) in
C:\Projects\NHibernateDictionaryTest\NHibernateDictionaryTest\Program.cs:line
17
   at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
   at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence
assemblySecurity, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
   at 
System.Threading.ThreadHelper.ThreadStart()</StackTrace><ExceptionString>NHibernate.MappingException:
Error mapping generic collection
NHibernateDictionaryTest.NotaRow.Children: expected 2 generic
parameters, but the property type has 1
   at NHibernate.Mapping.Collection.CheckGenericArgumentsLength(Int32
expectedLength)
   at NHibernate.Mapping.Map.get_DefaultCollectionType()
   at NHibernate.Mapping.Collection.get_CollectionType()
   at NHibernate.Mapping.Map.get_CollectionType()
   at NHibernate.Mapping.Collection.get_Type()
   at NHibernate.Tuple.PropertyFactory.BuildStandardProperty(Property
property, Boolean lazyAvailable)
   at NHibernate.Tuple.Entity.EntityMetamodel..ctor(PersistentClass
persistentClass, ISessionFactoryImplementor sessionFactory)
   at NHibernate.Persister.Entity.AbstractEntityPersister..ctor(PersistentClass
persistentClass, ICacheConcurrencyStrategy cache,
ISessionFactoryImplementor factory)
   at 
NHibernate.Persister.Entity.SingleTableEntityPersister..ctor(PersistentClass
persistentClass, ICacheConcurrencyStrategy cache,
ISessionFactoryImplementor factory, IMapping mapping)
   at NHibernate.Persister.PersisterFactory.CreateClassPersister(PersistentClass
model, ICacheConcurrencyStrategy cache, ISessionFactoryImplementor
factory, IMapping cfg)
   at NHibernate.Impl.SessionFactoryImpl..ctor(Configuration cfg,
IMapping mapping, Settings settings, EventListeners listeners)
   at NHibernate.Cfg.Configuration.BuildSessionFactory()
   at NHibernateDictionaryTest.Program.Main(String[] args) in
C:\Projects\NHibernateDictionaryTest\NHibernateDictionaryTest\Program.cs:line
17
   at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
   at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence
assemblySecurity, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
   at 
System.Threading.ThreadHelper.ThreadStart()</ExceptionString></Exception></TraceRecord>

Any ideas?

David

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to