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