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.

Responder a