Fluent Nhibernate - 将两个实体映射到同一个表

And*_*ndy 1 c# nhibernate nhibernate-mapping fluent-nhibernate

我正在尝试将两个域实体映射到同一个表.我们正在为我们的域模型做一个智能实体,所以我们有一个可编辑地址和一个只读地址的概念.我已经使用Classmaps进行了映射,在我们尝试使用NHibernate中的SchemaExport类导出模式之前,一切似乎都很顺利.它错误地说该表已经存在.

我认为这很简单,我只是没有看到.

有任何想法吗?

谢谢

更新

还有一些我未提及的其他事情.我对迄今为止回答的人表示赞赏,但他们并不适合我们.

一个是我们有一个地址表,不包括任何具有地址的实体中的列.

另一个是我们不能使用通用基类.对于可编辑对象,我们有一个超类,它将验证行为添加到子类中.readonly对象虽然不需要这种行为,但不应该有这些行为.

我已经考虑了一个接口,但后来我相信我最终会陷入困境,你可以在这个接口上投射一个只读对象,然后改变它的值(因为大概NHibernate会使用所说的接口来水合对象).

因此,如果有另一种方法来实现这一点,或者如果通过接口进行映射不会出现我所描述的问题,请告诉我.我还在学习NHibernate.

再次感谢!

Fir*_*iro 7

您可以从schemaexport中排除只读类:

public class ReadonlyAdressMap : ClassMap<ReadonlyAdress>
{
ReadonlyAdressMap()
{
    Schemaaction.None();
    [...]
}
}
Run Code Online (Sandbox Code Playgroud)