Ok, bien. Pero chequeaste el mapeo que te sugeri ? 2011/6/22 Dennis Alba <[email protected]>
> 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 <[email protected]> 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 <[email protected]> > > > >> 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 <[email protected]> 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 <[email protected]> > >> > > >> >> 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: > >> >> [email protected] > >> >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano > >> > > >> > -- > >> > Para escribir al Grupo, hágalo a esta dirección: > >> > [email protected] > >> > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > >> > >> -- > >> Para escribir al Grupo, hágalo a esta dirección: > >> [email protected] > >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano > >> > > > > -- > > Para escribir al Grupo, hágalo a esta dirección: > > [email protected] > > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
