0

情况如下:我在数据库中拥有一张名为“Entidade”的表,以及一张名为“Medico”的表。表“Medico”是下表中的连接子类实体,如下所示:

<joined-subclass name="Medico" table="Medico">
  <key column="SEQ_ENTIDADE"/>
  <property name="DSC_CRM"/>
  <property name="DSC_ESPECIALIDADE"/>
  <property name="FLG_SEXO"/>
</joined-subclass>

用户应该能够使用已经注册的“Entidade”在“Medico”上“打开它”。当我尝试保存扩展具有相同 ID 的类“Entidade”的对象“Medico”时,“Entidade”已保存,出现以下错误:

violation of PRIMARY or UNIQUE KEY constraint "PK_ENTIDADE" on table "ENTIDADE"

我的班级“Medico”:

public class Medico : Entidade
{
    public virtual string DSC_CRM { get; set; }

    public virtual string DSC_ESPECIALIDADE { get; set; }

    public virtual Sexo FLG_SEXO { get; set; }
}

有没有可能进行这种“改造”?

如果您需要其他任何东西来了解情况,请询问。

4

1 回答 1

1

我认为在您的情况下不应该使用子类。这不是 nHibernate 的问题,而是类和继承的问题。

如果您的实例有其他属性可以随着时间的推移添加或删除,我不会对您的模型使用继承,而是使用聚合。然后你加入的子类问题将成为一个参考问题(或 HasMany),你很好。

问候,迈克尔

于 2013-04-26T13:06:17.590 回答