nHibernate,Automapping和链式抽象类

时间:2010-04-03 02:15:13

标签: nhibernate fluent-nhibernate

我在使用nHibernate,自动化和使用多个抽象类链的类结构时遇到了一些麻烦

这与此相似

public abstract class AbstractClassA {}

public abstract class AbstractClassB : AbstractClassA {}

public class ClassA : AbstractClassB {}

当我尝试构建这些映射时,我收到以下错误

“FluentNHibernate.Cfg.FluentConfigurationException未处理 消息:创建SessionFactory时使用了无效或不完整的配置。检查PotentialReasons集合,以及InnerException以获取更多详细信息。

  • 数据库未通过数据库方法配置。“

但是,如果我从AbstractClassB中删除abstract关键字,一切正常。只有在类层次结构中有多个抽象类时才会出现问题。

我已使用以下绑定类手动配置自动化以包含AbstractClassA和AbstractClassB

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

为了解决这个问题,我不得不做一些hackery,但必须有一个更好的方法来实现这个目标。当然nHibernate支持这样的东西,我还没弄清楚如何正确配置它。

干杯,

詹姆斯

1 个答案:

答案 0 :(得分:0)

为什么在AutoMappings中包含抽象类,它们是否也在数据库中显示?你能提供内部异常Fluent投掷吗?

model.IncludeBase<AbstractClassA>();
model.IncludeBase<AbstractClassB>();

有了这个,你就试图将AbstractClassB映射到数据库,这应该不是你想要的。