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

时间:2010-04-23 09:09:23

标签: inheritance fluent-nhibernate nhibernate-mapping automapping

基本上,我有一个ImageMetadata类和一个Image类,它来自ImageMetadataImage添加了一个属性: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 个答案:

答案 0 :(得分:1)

我不完全确定,但我认为你需要改变subclassing strategy。它默认为每个子类的表,而我认为你想要的是每个层次的表。

我想是这样的:

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

当然,你必须包括一个descriminator,这可能不是你想要的。可能拥有更多FNH经验的人可以给出更好的答案。

另请参阅this post,其中涉及类似问题。