en el constructor de Alumno hace Contabilidad = new List<Contabilidad>() y entonces podes hacer Add() sin que te patee.
Gustavo. 2011/2/4 xhino <[email protected]> > 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 -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
