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

Responder a