我在使用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支持这样的东西,我还没弄清楚如何正确配置它。
干杯,
詹姆斯
答案 0 :(得分:0)
为什么在AutoMappings中包含抽象类,它们是否也在数据库中显示?你能提供内部异常Fluent投掷吗?
model.IncludeBase<AbstractClassA>();
model.IncludeBase<AbstractClassB>();
有了这个,你就试图将AbstractClassB映射到数据库,这应该不是你想要的。