Hello,

I am trying to map custom type, for which I've got a working IUserType
implementation. The user type works fine in an "ordinary" mapping. Now
I am using the same approach in a ComponentMap, yet I am experiencing
the following exception:

FluentNHibernate.Cfg.FluentConfigurationException occurred
  HResult=-2146233088
  Message=An invalid or incomplete configuration was used while
creating a SessionFactory. Check PotentialReasons collection, and
InnerException for more detail.

  Source=FluentNHibernate
  StackTrace:
       at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory()
       at 
Football.Data.Repository.Hibernate.NHibernateSessionFactoryManagerBase.CreateFactory()
in <path/>\NHibernateSessionFactoryManagerBase.cs:line 131
  InnerException: NHibernate.MappingException
       HResult=-2146232832
       Message=Could not determine type for:
Football.Models.Enumerations.StatisticFlags, Football,
Version=1.1.0.25499, Culture=neutral, PublicKeyToken=null, for
columns: NHibernate.Mapping.Column(Unit)
       Source=NHibernate
       StackTrace:
            at NHibernate.Mapping.SimpleValue.get_Type()
            at NHibernate.Mapping.SimpleValue.IsValid(IMapping mapping)
            at NHibernate.Mapping.Property.IsValid(IMapping mapping)
            at NHibernate.Mapping.PersistentClass.Validate(IMapping mapping)
            at NHibernate.Mapping.RootClass.Validate(IMapping mapping)
            at NHibernate.Cfg.Configuration.ValidateEntities()
            at NHibernate.Cfg.Configuration.Validate()
            at NHibernate.Cfg.Configuration.BuildSessionFactory()
            at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory()
       InnerException:

Could be falling over here:

            Component(x => x.Criterion)
                .ColumnPrefix(@"Criterion");

or here:

            Component(x => x.Lower)
                .ColumnPrefix(@"Lower");

            Component(x => x.Upper)
                .ColumnPrefix(@"Upper");

Which, any of these is a "Quantity" ComponentMap:

            Enumeration<StatisticFlags>(x => x.Unit)
                .CustomSqlType(@"ENUMERATIONFLAGS")
                .Not.Nullable();
            Map(x => x.Value).Not.Nullable();

Which ENUMERATIONFLAGS is a user defined data type: [VARBINARY](32).

Finally. which Enumeration mapping routes through here, both for
ComponentMap as for ClassMap:

protected PropertyPart Enumeration<TEnumeration>(
    Expression<Func<T, object>> memberExpression)
    where TEnumeration : Enumeration<TEnumeration>
{
    return part = Map(memberExpression)
        .CustomType<EnumerationUserType<TEnumeration>>();
}

I believe those are the relevant bits. The only thing I can figure is
that somehow what I am trying to do isn't quite supported in a
ComponentMap, but I could be wrong. I assure you, for ClassMap,
EnumerationUserType is working just fine, but not, it seems, for
ComponentMap.

Best regards,

Michael Powell

-- 
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to fluent-nhibernate+unsubscr...@googlegroups.com.
To post to this group, send email to fluent-nhibernate@googlegroups.com.
Visit this group at http://groups.google.com/group/fluent-nhibernate.
For more options, visit https://groups.google.com/d/optout.

Reply via email to