基本上,我有一个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
元素。
答案 0 :(得分:1)
我不完全确定,但我认为你需要改变subclassing strategy。它默认为每个子类的表,而我认为你想要的是每个层次的表。
我想是这样的:
AutoMap.AssemblyOf<Entity>()
.Setup(s =>
{
s.SubclassStrategy = t => SubclassStrategy.Subclass;
});
当然,你必须包括一个descriminator,这可能不是你想要的。可能拥有更多FNH经验的人可以给出更好的答案。
另请参阅this post,其中涉及类似问题。