1

基本上,我有一个ImageMetadata类和一个Image类,它派生自ImageMetadata. 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

4

1 回答 1

1

我不完全确定,但我认为您需要更改子类化策略。它默认为每个子类的表,而我认为您想要的是每个层次结构的表。

我是这样想的:

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

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

另见这篇文章,它处理类似的问题。

于 2010-04-23T09:15:34.473 回答