Que tal people traigo uno de tantos lios...
segun he leido es casi sino que es obligatorio que el ID tiene que ser generado obligatoriamente por NH en el mapeo de la clase y digo esto porque al momento de hacer la relacion por medio de IList<>, y tratar de guardar me sale un error de null, o de que un entero o string no se puede convertir en IList<> es por ello que recurro a ustedes, les platico la logica del asunto. tengo 2 tablas: Alumno y Contabilidad La tabla Alumno, es una tabla precargada de un archivo excel, los datos aqui no se incrementaran ya que es de solo lectura, para realizar consulta, la tabla contiene los siguientes campos Matricula <-- campo clave Paterno Materno Nombre La tabla Contabilidad, es una tabla donde se capturaran los datos contables de un Alumno, tales como NoCuenta <-- campo clave NoJE Hora Importe MatriculaAlumno <-- campo que se conecta con la tabla Alumno / en el campo Matricula la clase Alumno queda de esta manera public virtual string Matricula ( get; set; ) public virtual string Paterno ( get; set; ) public virtual string Materno ( get; set; ) public virtual string Nombre ( get; set; ) public virtual IList<Contabilidad> Cuenta ( get; set; ) el archivo Alumno.hbm.xml queda asi <class name="Alumno"> <id name="Matricula" /> <property name="Paterno" /> <property name="Materno" /> <property name="Name" /> <bag name="Contabilidad"> <key column="MatriculaAlumno" /> <one-to-many class="Contabilidad" /> </bag> </class> la clase Contabilidad queda asi public virtual int NoCuenta ( get; set; ) public virtual int NoJE ( get; set; ) public virtual int Hora ( get; set; ) public virtual int Importe ( get; set; ) public virtual IList<Alumno> MatriculaAlumno ( get; set; ) <class name="Contabilidad"> <id name="NoCuenta" /> <property name="NoJE" /> <property name="Hora" /> <property name="Importe" /> <many-to-one class="Alumno" Column="MatriculaAlumno" /> </bag> </class> Cabe mencionar que tanto las clases como los xml los tengo bien desarrollados, ahorita tal ves omiti datos, porque los estoy escribiendo a patin omitiendo los datos de conexion - repositorios y demas, que tambien estan bien, ya que si logro que guarde en una tabla, solo trato de simplificar para que vean mi dolor de cabeza en la winform estoy capturando los datos de esta manera Alumno alu = new Alumno(); alu.Matricula = "1"; alu.Paterno = "fulano"; alu.Materno = "mengano"; alu.Nombre = "sultano"; Contabilidad cta = new Contabilidad(); cta.NoCuenta = 23456789; cta.NoJE = 4567890; cta.Hora = 20; cta.Importe = 4599; alu.Contabilidad.add(cta); <--- esta linea es la que me causa el problema trate de cambiar la manera de capturar la Matricula directamente de esta manera cta.MatriculaAlumno = alu.Matricula o de esta otra cta.Matricula = "1"; pero el error es el mismo se de antemano que todo funcionaria bien si los ID de ambas tablas las generara automaticamente por NH, pero como les dije me es imposible ya que la tabla alumno contiene sus datos precargados y a fin de cuentas la tabla dominante debe ser Alumno Cualquier dato me sera de gran ayuda, excepto el de que renuncie a mi vida como programador... me niego xD De hecho esta necedad de usar NH es porke kiero aprender, nada me costaria terminar todo de la vieja forma, pero no me gusta -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
