Tiene toda la pinta de ser un bug en NHV.... Acordate que para CUIT , NHV tiene algo especifico a Argentina para validarlos. En Argentina, con una operación matemática se puede saber si el cuit es valido (el último dígito sirve para validar), si agregas una referencia a NHibernate.Validator.Specific.dll vas a ver el attributo Cuit.
El 30 de abril de 2010 00:14, Rodrigo Juarez <[email protected]>escribió: > Hola a todos! > > Estoy tratando de generar la base de datos en forma automatica en > tests de mi aplicacion. Quiero aprovechar que ya estoy utilizando > NHValidator para que utilice las constraints especificadas para cada > clase. > > Me di cuenta, que en el caso de tener una clase como componente, no > esta tomando las constraints en la generacion de la tabla resultante. > > La validacion de objetos que utilizan componentes funciona > correctamente, es decir, si el componente tiene valores invalidos, > NHValidator lo informa correctamente. > > ¿Debo tener en cuenta algun paso adicional para que la generacion de > la base de datos tome las constraints de los componentes? > > > Información adicional > ------------------------------ > > Estoy utilizando NHibernate, ConfORM, NHValidator y unhaddins, todas > las versiones descargadas y compiladas al 16 de abril de 2010. > > Las constraints las especifico por medio de atributos. > > A continuacion, copio las clases involucradas, el archivo de > configuracion de Nhv y los datos de la tabla generada para la clase > Asegurado, que como puede verse no tiene establecido el ancho del > campo calle en 100 > > <?xml version="1.0" encoding="utf-8" ?> > <!-- NHibernate.Validator Configuration --> > <nhv-configuration xmlns='urn:nhv-configuration-1.0'> > <property name='apply_to_ddl'>true</property> > <property name='autoregister_listeners'>true</property> > </nhv-configuration> > > using NHibernate.Validator.Constraints; > > namespace Modelo > { > public class Asegurado:Entity > { > [Length(Min=1,Max=50,Message="La Razón Social debe tener > entre 1 y > 50 caracteres."),NotNullNotEmpty] > public virtual string RazonSocial { get; set; } > > [Length(Min=11,Max=11,Message = "CUIT especificado no > válido."),NotNullNotEmpty] > public virtual string Cuit { get; set; } > > [Valid] > public virtual Direccion Direccion { get; set;} > } > } > > using NHibernate.Validator.Constraints; > > namespace Modelo > { > public class Direccion > { > [Length(Max=100,Message="La calle puede tener hasta 100 > caracteres.")] > public virtual string Calle { get; set; } > public virtual int Numero { get; set; } > public virtual Localidad Localidad{ get; set; } > [Length(Max = 10, Message = "El código postal puede tener > hasta 10 > caracteres.")] > public virtual string Cp{ get; set; } > } > } > > CREATE TABLE [dbo].[Asegurado]( > [Id] [uniqueidentifier] NOT NULL, > [RazonSocial] [nvarchar](50) NOT NULL, > [Cuit] [nvarchar](11) NOT NULL, > [Calle] [nvarchar](255) NULL, > [Numero] [int] NULL, > [Localidad] [uniqueidentifier] NULL, > [Cp] [nvarchar](255) NULL, > > -- > 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
