Buenos Dias,
Tengo la siguiente situacion:
tengo una clase Rol, la cual tiene una llave primaria compuesta por las
siguientes propiedades codigo y codigoCompania las cuales en la tabla roles
se almacenan en las columnas codrol y codcia respectivamente, tengo otra
clase usuario que tiene codigo y codigoCompania, las cuales se almacenan en
los campos codusu y codcia, actualmente en la empresa en donde estoy
desarrollando el proyecto no tienen integridad referencial en la base de
datos es decir no tienen FK entre las tablas, la relacion es que un rol
puede tener muchos usuarios en donde se debe tener en cuenta que
pertenezcan a la misma compania, por eso tengo ls siguientes xml de mapeo:
ROLES
______________________________________________________________
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="PruebaNHibernate"
namespace="Entidades.Mapping">
<class name="Entidades.Entidades.Rol, Entidades" table="Roles"
lazy="false">
<composite-id name="RolPK" class ="Entidades.Entidades.RolPK,Entidades"
>
<key-property name="codigoCompania" column="codcia"/>
<key-property name="codigo" column="codrol"/>
</composite-id>
<property name="descripcion" column="desrol"/>
</class>
</hibernate-mapping>
_______________________________________________________________
USUARIOS
_______________________________________________________________
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="PruebaNHibernate"
namespace="Entidades.Mapping">
<class name="Entidades.Entidades.Usuario, Entidades" table="Usuarios"
lazy="false">
<id name="codigo" column="codusu"/>
<property name="codigo" column="codusu"/>
<property name="nombre" column="nomusu"/>
<property name="apellido" column="apeusu"/>
<property name="codigoCompania" column="codcia"/>
<many-to-one name="rolId" class="Entidades.Entidades.Rol, Entidades" >
<column name="codcia"/>
<column name="codrol"/>
</many-to-one>
</class>
</hibernate-mapping>
________________________________________________________________
Las clases son las siguientes
Rol
namespace Entidades.Entidades
{
public class Rol
{
public RolPK RolPK { get; set; }
public string descripcion { get; set; }
public ISet<Usuario> Usuarios { get; set; }
}
public class RolPK
{
public string codigoCompania { get; set; }
public string codigo { get; set; }
public override bool Equals(object obj)
{
if (obj == null)
return false;
RolPK id;
id = (RolPK)obj;
if (id == null)
return false;
if (codigoCompania == id.codigoCompania && codigo == id.codigo)
return true;
return false;
}
public override int GetHashCode()
{
return (codigoCompania + "|" + codigo).GetHashCode();
}
}
}
________________-
Usuario
namespace Entidades.Entidades
{
public class Usuario
{
public string codigo { get; set; }
public string nombre { get; set; }
public string apellido { get; set; }
public Rol rolId { get; set; }
public string codigoCompania { get; set; }
}
}
_________________________
el problema es que al grabar el rol lo graba bien, pero el usuario me
genera el problema siguiente:Índice 5 no válido para SqlParameterCollection
con Count=5 me gustaria que me colaboraran en saber en que estoy fallando y
que solucion le puedo dar a esa estructura que les estoy planteando.
comparto proyecto por google drive
Cordialmente,
CAMILO ANDRES SOTO R.
--
--
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
---
Has recibido este mensaje porque estás suscrito al grupo "NHibernate-Hispano"
de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía
un correo electrónico a [email protected].
Para obtener más opciones, visita https://groups.google.com/d/optout.