具有抽象基础的流畅自动映射也是模型的一部分



好的,首先我希望这是有意义的。

我试图使用流畅的自动映射为我的应用程序围绕以下想法。

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>();

相关内容

  • 没有找到相关文章

最新更新