Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NHibernate正在尝试在删除操作中将ID更新为null_C#_Xml_Visual Studio 2010_Nhibernate - Fatal编程技术网

C# NHibernate正在尝试在删除操作中将ID更新为null

C# NHibernate正在尝试在删除操作中将ID更新为null,c#,xml,visual-studio-2010,nhibernate,C#,Xml,Visual Studio 2010,Nhibernate,首先我有这些实体:Persona、Paciente、Alergia、Cita和Consulta。 当我试图删除一个角色时,问题就出现了。我的数据库如下所示: 我目前正在与Persona和Paciente合作。这些是它们的映射和类: <?xml version="1.0" encoding="utf-8"?> <hibernate-mapping assembly="Odontologia General Admin" namespace="Odontologia_Ge

首先我有这些实体:Persona、Paciente、Alergia、Cita和Consulta。 当我试图删除一个角色时,问题就出现了。我的数据库如下所示:

我目前正在与Persona和Paciente合作。这些是它们的映射和类:

    <?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping assembly="Odontologia General Admin" namespace="Odontologia_General_Admin.Persistence.Entidades" xmlns="urn:nhibernate-mapping-2.2">
  <class name="Persona" table="persona" lazy="true" >
    <id name="Cipersona" column="ciPersona" />
    <bag name="Cliente" cascade="all-delete-orphan">
      <key column="ciCliente"/>
      <one-to-many class="Cliente" />
    </bag>
    <bag name="Paciente" cascade="all-delete-orphan">
      <key column="ciPaciente"/>
      <one-to-many class="Paciente" />
    </bag>
  </class>
</hibernate-mapping>

    <?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping assembly="Odontologia General Admin" namespace="Odontologia_General_Admin.Persistence.Entidades" xmlns="urn:nhibernate-mapping-2.2">
  <class name="Paciente" table="paciente" lazy="true" >
    <id name="Cipaciente" column="ciPaciente" />
    <bag name="CitasPaciente" table="cita" lazy="true" inverse="true" cascade="all-delete-orphan">
      <key column="ciPaciente" />
      <one-to-many class="Cita"/>
    </bag>
    <bag name="ConsultasPaciente" table="consulta" lazy="true" inverse="true" cascade="all-delete-orphan">
      <key column="ciPaciente" />
      <one-to-many class="Consulta" />
    </bag>
    <bag name="AlergiasPaciente" table="alergia_paciente" lazy="true" cascade="all-delete-orphan" inverse="true" >
      <key column="ciPaciente"></key>
      <many-to-many column="idAlergia" class="Alergia" />
    </bag>
  </class>
</hibernate-mapping>

SQL抛出异常,因为该列不能为null。

在包映射中,您需要update=“false”

在包映射中,您需要update=“false”

not null=“true”
update=“false”
添加到
Paciente
集合映射中:

<bag name="Paciente" cascade="all-delete-orphan">
  <key column="ciPaciente" not-null="true" update="false"/>
  <one-to-many class="Paciente" />
</bag>

此外,您可能希望将集合映射为反向。

not null=“true”
update=“false”
添加到
Paciente
集合映射:

<bag name="Paciente" cascade="all-delete-orphan">
  <key column="ciPaciente" not-null="true" update="false"/>
  <one-to-many class="Paciente" />
</bag>


另外,您可能希望将集合映射为反向。

我建议的方式是将集合映射为
inverse=“true”
-我建议的方式是将集合映射为
inverse=“true”
-
<bag name="Paciente" cascade="all-delete-orphan">
  <key column="ciPaciente" not-null="true" update="false"/>
  <one-to-many class="Paciente" />
</bag>