代码之家  ›  专栏  ›  技术社区  ›  Anton Gogolev

用FNH的Automap将派生类映射为独立类

  •  1
  • Anton Gogolev  · 技术社区  · 14 年前

    基本上,我有一个 ImageMetadata 类和an Image 类,派生自 图像元数据 . 图像 byte[] Content ,它实际上包含二进制数据。

    我要做的是将这两个类映射到 表,但我绝对不需要NHibernates的继承支持。我想定制FNH Automap,生产如下产品:

    <class name="ImageMetadata" ...>    
        <property name="Name" ... />
        < ... />
    
    <class name="Image" ...>    
        <property name="Name" ... />
        <property name="Content" ... />
        < ... />        
    

    这有可能吗?

    目前我有:

    Override<ImageMetadata>(m => m.Table("Image"))
    

    但这仍然增加了 <joined-subclass> ImageMetatada 的映射。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Community pid    7 年前

    我不完全确定,但我认为你需要改变 subclassing strategy . 它默认为table per subclass,而我认为您需要的是table per hierachy。

    我这样想:

        AutoMap.AssemblyOf<Entity>()
           .Setup(s =>
           {
             s.SubclassStrategy = t => SubclassStrategy.Subclass;
           });
    

    当然,您必须包含一个描述符,这可能不是您想要的。也许有经验的人能给出更好的答案。

    另请参见 this post ,处理类似的问题。