Nhibernate关联实体已使用join-subclass中的新项目保存在数据库中

时间:2013-04-25 19:33:00

标签: asp.net-mvc-3 nhibernate nhibernate-mapping joined-subclass

情况如下: 我在数据库中拥有一个名为“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>

用户应该能够在“Medico”上使用已经注册为“Turn it”的“Entidade”。当我尝试保存扩展“Entidade”类的对象“Medico”时,使用相同的ID“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; }
}

有可能进行“转型”吗?

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

1 个答案:

答案 0 :(得分:1)

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

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

此致 迈克尔