lo estoy chequeando pero el fluent no tiene como especificar mas
campos para la tabla que se generara para establecer la relacion, lo
mas que te deja a hacer es poner el nombre de la tabla y las llave PK
FK del padre , pero nada mas

El 22/06/11, Nestor Andres Rodriguez <nester...@gmail.com> escribió:
> Ok,  bien.  Pero chequeaste el mapeo que te sugeri ?
>
> 2011/6/22 Dennis Alba <alba2...@gmail.com>
>
>> eso mismo era mi hermano, gracias, nunca hago eso y esta vez lo hice
>> sin percatarme. Problema resuelto
>>
>>
>> El 22/06/11, Nestor Andres Rodriguez <nester...@gmail.com> escribió:
>> > Hola Dennis.  Creeria que el inconveniente esta en que tu estas mapeando
>> dos
>> > veces las mismas propiedades.  Si haces CompositeId().KeyReference, no
>> > es
>> > necesario que vuelvas a hacer un "References" a la misma propiedad.
>> >
>> > Saludos,
>> >
>> > 2011/6/22 Dennis Alba <alba2...@gmail.com>
>> >
>> >> Haber te cuento Nestor:
>> >> 1- uso fluent Nhibernate, por tal motivo no eleve los ficheros hbm(no
>> >> las hay) ni las clases de mapeo pues se que la mayoria del foro usa
>> >> solo NHibernate.
>> >> 2- en realidad las clases las cree como si fueran tablas ya que al
>> >> menos Fluent (y creo que Nhibernate tambien)  pueden mapearte dos
>> >> entidades cuya relacion sea m-n reandote la 3ra tabla que las
>> >> relaciona siempre y cuando esta no tenga valores agregados, pero como
>> >> en mi caso necesito que la tabvla que relacion a las otras dos tenga
>> >> ademas de sus llaves P otros campos como la fecha ya el metodo que
>> >> trae Fluent no me sirve, por tal motivo es que tube que crear las
>> >> clases como si fueran las tablas.
>> >> de todas formas aqui te paso las clases de mapeo:
>> >>
>> >>       public GrupoMap()
>> >>       {
>> >>           // definicionde la tabla
>> >>           Table("P_GRUPO");
>> >>
>> >>           // definicion de la llave primaria de la tabla
>> >>           Id(x => x.IdGrupo).Column("ID_GRUPO").GeneratedBy.Native();
>> >>
>> >>           //campos a mapear
>> >>           Map(x => x.NombGrupo).Column("GRUPO").Nullable().Length(10);
>> >>           Map(x => x.Anno).Column("ANO").Nullable().Length(2);
>> >>       }
>> >>    }
>> >>       public GrupoMap()
>> >>       {
>> >>           // definicionde la tabla
>> >>           Table("P_GRUPO");
>> >>
>> >>           // definicion de la llave primaria de la tabla
>> >>           Id(x => x.IdGrupo).Column("ID_GRUPO").GeneratedBy.Native();
>> >>
>> >>           //campos a mapear
>> >>           Map(x => x.NombGrupo).Column("GRUPO").Nullable().Length(10);
>> >>           Map(x => x.Anno).Column("ANO").Nullable().Length(2);
>> >>       }
>> >>    }
>> >>
>> >>        public ProfesorGrupoMap()
>> >>        {
>> >>            // definicionde la tabla
>> >>            Table("P_PROFESOR_GRUPO");
>> >>
>> >>            // definicion de la llave primaria de la tabla
>> >>            CompositeId().KeyReference(x => x.p_Grupo, "ID_GRUPO")
>> >>                .KeyReference(x => x.p_Profesor, "ID_PROFESOR");
>> >>
>> >>            //campos a mapear
>> >>            Map(x =>
>> >> x.Fecha).Column("FECHA").Nullable().CustomSqlType("DATETIME");
>> >>            References(x => x.p_Profesor).Column("ID_PROFESOR");
>> >>            References(x =>
>> x.p_Grupo).Column("ID_GRUPO");//.Cascade.All();
>> >>        }
>> >>    }
>> >> Reitero, las tablas se mapean bien e incluso puedo insertar bien los
>> >> valores desde SQLServer, el problema esta cuando hago la inserccion a
>> >> la tabla P_PROFESOR_GRUPO desde la aplicacion
>> >> que crees??
>> >>
>> >> El 22/06/11, Nestor Andres Rodriguez <nester...@gmail.com> escribió:
>> >> > Por favor provee los archivos de mapeo.   Otra  cosa, no has pensado
>> en
>> >> que
>> >> > el Profesor tenga su coleccion de grupos y viceversa ?  Pareciera
>> >> > como
>> >> > si
>> >> > estuvieras mapeando un sistema modelado en tablas y relaciones en
>> lugar
>> >> de
>> >> > objetos.
>> >> >
>> >> > Saludos
>> >> >
>> >> > 2011/6/22 Banzai <alba2...@gmail.com>
>> >> >
>> >> >> Saludos tropa:
>> >> >> necesito ver si me pueden ayudar con el siguiente error que plantee
>> en
>> >> >> el titulo de este debate
>> >> >> les pongo mi entorno completo para que puedan entender bien el
>> >> >> problema
>> >> >> tengo las siguientes clases:
>> >> >>
>> >> >>   public partial class Profesor
>> >> >>    {
>> >> >>       public virtual int IdProfesor { get; set; }
>> >> >>       public virtual string NombreProfesor { get; set; }
>> >> >>
>> >> >>    }
>> >> >>
>> >> >>    public partial class Grupo
>> >> >>    {
>> >> >>        public virtual int IdGrupo { get; set; }
>> >> >>        public virtual string NombGrupo { get; set; }
>> >> >>        public virtual int Anno { get; set; }
>> >> >>    }
>> >> >>
>> >> >>    public partial class ProfesorGrupo
>> >> >>    {
>> >> >>
>> >> >>        public virtual Profesor p_Profesor { get; set; }
>> >> >>
>> >> >>        public virtual Grupo p_Grupo { get; set; }
>> >> >>
>> >> >>        public virtual DateTime? Fecha { get; set; }
>> >> >>
>> >> >>        public override int GetHashCode()
>> >> >>        {
>> >> >>            return p_Profesor.GetHashCode() + p_Grupo.GetHashCode();
>> >> >>        }
>> >> >>
>> >> >>
>> >> >>        public override bool Equals(object obj)
>> >> >>        {
>> >> >>            if (ReferenceEquals(null, obj)) return false;
>> >> >>            if (ReferenceEquals(this, obj)) return true;
>> >> >>            var other = obj as ProfesorGrupo;
>> >> >>            if (other == null) return false;
>> >> >>
>> >> >>            return (p_Profesor == other.p_Profesor
>> >> >>                   && p_Grupo == other.p_Grupo
>> >> >>                   && Fecha == other.Fecha);
>> >> >>        }
>> >> >>
>> >> >>    }
>> >> >>
>> >> >> cuando hago el mapeo de estas entidades me quedan tres tablas
>> P_GRUPO,
>> >> >> P_PROFESOR, P_PROFESOR_GRUPO, donde la ultima lo que hace no es mas
>> >> >> que relacionar las dos primeras, ya que contiene sus PK como llaves
>> de
>> >> >> ella, Vamos que lo que hice fue modelar una relacion n-m entre las
>> dos
>> >> >> primeras (P_GRUPO y P_PROFESOR).
>> >> >> El mapeo se realiza de manera perfecta, el problema esta cuando
>> >> >> trato
>> >> >> de insertar, particularmente en P_PROFESOR_GRUPO.
>> >> >>
>> >> >> el flujo de las inserciones es el siguiente.
>> >> >>
>> >> >> 1ero inserto todos los grupos, FUNCIONA BIEN
>> >> >> 2do luego inserto a los profesores FUNCIONA BIEN
>> >> >> 3ro luego inserto a la clase que los relaciona pasandole ya que esta
>> >> >> entidad tiene un objeto de Grupo y profesor, pero cuando lo inserto
>> da
>> >> >> el siguiente error
>> >> >>  "Índice 3 no válido para SqlParameterCollection con Count=3."
>> >> >>
>> >> >> alguien sabe que puede ser??
>> >> >> Mil gracias
>> >> >>
>> >> >> --
>> >> >> Para escribir al Grupo, hágalo a esta dirección:
>> >> >> NHibernate-Hispano@googlegroups.com
>> >> >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>> >> >
>> >> > --
>> >> > Para escribir al Grupo, hágalo a esta dirección:
>> >> > NHibernate-Hispano@googlegroups.com
>> >> > Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>> >>
>> >> --
>> >> Para escribir al Grupo, hágalo a esta dirección:
>> >> NHibernate-Hispano@googlegroups.com
>> >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>> >>
>> >
>> > --
>> > Para escribir al Grupo, hágalo a esta dirección:
>> > NHibernate-Hispano@googlegroups.com
>> > Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>>
>> --
>> Para escribir al Grupo, hágalo a esta dirección:
>> NHibernate-Hispano@googlegroups.com
>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>>
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> NHibernate-Hispano@googlegroups.com
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano

-- 
Para escribir al Grupo, hágalo a esta dirección: 
NHibernate-Hispano@googlegroups.com
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a