Hola gente, Angel...
Ando un poco perdido por la diferencia de horario y por la carga de trabajo que
me ha tocado asumir.. te dejo aca la idea de lo que planteo..
Cuando hablo de nulleables en los campos que admiten null, no trae ninguna
modificación al HBM, pero si a la entidad, ya que si tenemos un int que admite
null en nuestra base de datos, nuestra entidad debia declararlo como int? para
poder usar null en esa propiedad.
Si la propiedad no admite null pues yo normalmente lo que hago es validar el
valor que se va a asignar antes de hacer el set de cualquier propiedad.. esto
se justifica más frente a tipos string o frente a mapeos one-to-one. Por
ejemplo, si tengo un campo Nombre de tipo cadena que no admite null en el set
normalmente hago:
....
set
{
if (value == null) .. (aca la toma de desiciones.. yo normalmente levanto
una exception)
propiedad = value;
}
Con el tamaño de los datos pasa lo mismo.. si mi campo es de tipo cadena de
tamaño 50, yo no debia permitir asignar una cadena de tamaño 100 a la
propiedad.. como la conversión de tipo es a string por parte de NH, entonces
supuestamente podria asignar cualquier tamaño, y el error vendria por parte de
la BD.
set
{
if (value.Lenght > 50) (aca la toma de desiciones.. yo normalmente levanto
una exception)
}
Estas cosas son controlables con los Validators de Castle por ejemplo. que en
el caso de ActiveRecord funcionan muy bien y queda muy lindo el código..
tambien es implementada por las EntLib, aunque no he probado usar sus
validators con NH. Existen muchas otras validaciones que estos framework nos
permiten, como el chequeo de que no puede estar vacia, o que el # debe estar en
un rango, o que la fehca debe estar en un rango...a lo mejor la idea es que
cada entidad contenga un IsValid que nos permita validar todas estas cosas
antes de hacer un update o insert
Dario queria hacer algo de esto.. no se en que punto lo tendrá..
Salu2 a todos
Omar
----- Original Message -----
From: Angel "Java" Lopez
To: [email protected]
Sent: Monday, October 29, 2007 2:35 AM
Subject: [NHibernate-Hispano] Re: Generando Codigo para NHibernate
Hola gente!
Omar, gente, donde y como les parece implementar lo que Omar comenta:
- Usar nulleables donde los campos admiten nulos. Chequear de no permitir la
asignacion (de que valor Omar? de un nulo de la base al campo en el objeto) si
no admiten nulos.
- Controlar el tamanio del dato
Algun codigo de ejemplo?
Nos leemos!
Angel "Java" Lopez
http://www.ajlopez.com/
----- Original Message -----
From: Omar del valle Rodríguez
To: [email protected]
Sent: Tuesday, September 25, 2007 9:54 AM
Subject: [NHibernate-Hispano] Re: Generando Codigo para NHibernate
Estupendos Tips Fabio..
Me responsabilizo con algunas de las cosas que mencionas aca.. Angel
simplemente llegó a un resultado previamente enviado por mi..
Angel.. tengo que analizarlo con más calma.. leí el post pero quiero
bajarme la solución y palparlo con VS. Hasta donde pude ver, me gustó bastante.
Un Hint.. A partir de la definición correcta de los HBM, como aceptar NULL
o el tamaño de los campos para algunos tipos de datos SQL.. nuestra entidad
debía chequear el cumplimiento de estas normas.
- Si el campo acepta NULL, utilizar los nulleables. Sino, chequear esto en
algun lugar para no permitir la asignación.
- Si el campo que se define tiene un tamaño determinado.. digamos un
varchar(200).. si se intenta sobrepasar dicho tamaño, chequear esto en algún
lugar para no permitir la asignación.
Salu2
Omar..
PD: Buen ejemplo Angel.. ;) gracias.
--~--~---------~--~----~------------~-------~--~----~
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
-~----------~----~----~----~------~----~------~--~---