Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/09/2012, 09:17
goti_512
 
Fecha de Ingreso: septiembre-2012
Ubicación: Santa Fe
Mensajes: 2
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Id no autogenerado con NHibernate

3ricks0ul:

muchas gracias por la respuesta! en realidad no me soluciona el problema del comentario, pero me viene bien para otro caso que tengo pendiente . Gracias por tu predisposición y por la pronta respuesta.

Encontré la solución al problema, así que la dejo por las dudas a alguien se le presente algo similar:

El código del archivo mapping corregido es el siguiente:

<!-- clase Legajo -->
<class name="Sueldos.Entidades.Legajo, Sueldos" table="Legajo" lazy="false">
<id name="Id" type="int" column="id"></id>
<property name="Apellido" column="apellido" />
<property name="Nombre" column="nombre" />
<property name="TipoDoc" column="tipoDoc" />
<property name="NroDoc" column="nroDoc" />
<property name="FechaNac" column="fechaNac" />
<property name="Domicilio" column="domicilio" />
<property name="Localidad" column="localidad" />
<property name="CodPostal" column="codPostal" />
<property name="FechaIngreso" column="fechaIngreso" />
<property name="FechaVirtual" column="fechaVirtual" />
<property name="Telefono" column="telefono" />
<property name="CantHoras" column="cantHoras" />
<property name="FormaLiquidacion" column="formaLiquidacion" />
<property name="Cuil" column="cuil" />
<property name="Cbu" column="cbu" />
<property name="EstadoCivil" column="estadoCivil" />
<many-to-one name="Categoria"
column="idCategoria"
not-null="true"/>
<many-to-one name="Departamento"
column="idDepartamento"
not-null="true"/>
<many-to-one name="Seccion"
column="idSeccion"
not-null="true"/>
<many-to-one name="CentroCosto"
column="idCentroCosto"
not-null="true"/>
<many-to-one name="ObraSocial"
column="idObraSocial"
not-null="true"/>
<property name="Eliminado" column="eliminado" />
</class>


Además, para que NHibernate utilice la clave primaria que se especifica como atributo de la entidad (y no genere uno automáticamente), utilicé la sentencia SaveOrUpdate. El código en C#:

/// <summary>
/// Saves the or update.
/// </summary>
/// <param name="entity">The entity.</param>
public void SaveOrUpdate(Legajo entity)
{
ISession.SaveOrUpdate(entity);
ISession.Flush();
}


Espero le sea de utilidad a alguien .

Saludos