I ran in to two issues when upgrading from an older version of FNH to
v1 RC. I'm hoping by advertising them here, I can save a few people
from the same headaches.

First, the new deprecated JoinedSubClass ignores an empty subclasses.
I had two entities that inherit from the same base type. They don't
have properties of their own, only a few overridden methods. These
weren't included in the mapping until I switched to SubclassMap.

Second, you will get an incomplete configuration exception with a
NullReferenceException inside when you have a mix of SubclassMap and
JoinedSubClass. It's an all-or-nothing upgrade. I rolled back my code
changes a few times thinking I was using SubclassMap incorrectly,
before I finally just went for it. Evidently, JoinedSubClass messes up
some internal state used by SubclassMap.

FluentNHibernate.Cfg.FluentConfigurationException: An invalid or
incomplete configuration was used while creating a SessionFactory.
Check PotentialReasons collection, and InnerException for more detail.

 ---> FluentNHibernate.Cfg.FluentConfigurationException: An invalid or
incomplete configuration was used while creating a SessionFactory.
Check PotentialReasons collection, and InnerException for more detail.

 ---> System.NullReferenceException: Object reference not set to an
instance of an object.
   at FluentNHibernate.SeparateSubclassVisitor.SortByDistanceFrom(Type
parentType, IEnumerable`1 providers)
   at FluentNHibernate.SeparateSubclassVisitor.FindClosestSubclasses
(Type type)
   at FluentNHibernate.SeparateSubclassVisitor.ProcessJoinedSubclass
(JoinedSubclassMapping mapping)
   at
FluentNHibernate.MappingModel.ClassBased.JoinedSubclassMapping.AcceptVisitor
(IMappingModelVisitor visitor)
   at FluentNHibernate.MappingModel.DefaultMappingModelVisitor.Visit
(ISubclassMapping subclassMapping)
   at
FluentNHibernate.MappingModel.ClassBased.ClassMappingBase.AcceptVisitor
(IMappingModelVisitor visitor)
   at
FluentNHibernate.MappingModel.ClassBased.ClassMapping.AcceptVisitor
(IMappingModelVisitor visitor)
   at FluentNHibernate.MappingModel.DefaultMappingModelVisitor.Visit
(ClassMapping classMapping)
   at FluentNHibernate.MappingModel.HibernateMapping.AcceptVisitor
(IMappingModelVisitor visitor)
   at FluentNHibernate.PersistenceModel.ApplyVisitors(IEnumerable`1
mappings)
   at FluentNHibernate.PersistenceModel.BuildMappings()
   at FluentNHibernate.PersistenceModel.EnsureMappingsBuilt()
   at FluentNHibernate.PersistenceModel.WriteMappingsTo(String folder)
   at FluentNHibernate.Cfg.FluentMappingsContainer.Apply(Configuration
cfg)
   at FluentNHibernate.Cfg.MappingConfiguration.Apply(Configuration
cfg)
   at FluentNHibernate.Cfg.FluentConfiguration.BuildConfiguration()
   --- End of inner exception stack trace ---
   at FluentNHibernate.Cfg.FluentConfiguration.BuildConfiguration()
   at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory()


   --- End of inner exception stack trace ---
   at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory()


Thanks,
Jason

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" 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/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to