nHibernate, Automapping and Chained Abstract Classes

Posted by Mr Snuffle on Stack Overflow See other posts from Stack Overflow or by Mr Snuffle
Published on 2010-04-03T02:15:13Z Indexed on 2010/04/03 2:23 UTC
Read the original article Hit count: 622

I'm having some trouble using nHibernate, automapping and a class structure using multiple chains of abstract classes

It's something akin to this

public abstract class AbstractClassA {}

public abstract class AbstractClassB : AbstractClassA {}

public class ClassA : AbstractClassB {}

When I attempt to build these mappings, I receive the following error

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

  • Database was not configured through Database method."

However, if I remove the abstract keyword from AbstractClassB, everything works fine. The problem only occurs when I have more than one abstract class in the class hierarchy.

I've manually configured the automapping to include both AbstractClassA and AbstractClassB using the following binding class

public class BindItemBases : IManualBinding
{
    public void Bind(FluentNHibernate.Automapping.AutoPersistenceModel model)
    {
        model.IncludeBase<AbstractClassA>();
        model.IncludeBase<AbstractClassB>();
    }
}

I've had to do a bit of hackery to get around this, but there must be a better way to get this working. Surely nHibernate supports something like this, I just haven't figured out how to configure it right.

Cheers,

James

© Stack Overflow or respective owner

Related posts about nhibernate

Related posts about automapping