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
-~----------~----~----~----~------~----~------~--~---