好的,首先我希望这是有意义的。
我试图使用流畅的自动映射为我的应用程序围绕以下想法。
public abstract class Container
{
public virtual int Id {get; set};
public virtual string Name {get; set;}
}
public class FirstSubClass : Container
{
//properties and behaviour here
}
public class SecondSubClass : Container
{
//properties of SecondSubclass Here
}
public class ProcessStep
{
public virtual Container Source {get; set}
public virtual Container Destination {get; set;}
}
然而,当我尝试生成模式或测试我的映射(使用SQLite或其他)时,它失败了,注意:
NHibernate。MappingException:来自表ProcessStep的关联指向未映射的类:......Entities.Container
如果我改变Container类并使其非抽象,它可以工作。
我可以针对基类型公开实体上的属性,而基类型仍然是抽象的吗?
默认情况下,Fluent Nhibernate在生成映射时会忽略抽象基类。要包含它,你需要使用IncludeBase方法:
AutoMap.AssemblyOf<Container>(cfg)
.IncludeBase<Container>();