Bueno pueden existir dos puntos donde debes realizar esta validacion. Constructor y Set de la propiedad en el cliente. Podrias en estos puntos implementar una estrategia <http://en.wikipedia.org/wiki/Strategy_pattern>que valide la identificacion dependiendo del tipo de identificacion.
Saludos, Nestor Rodriguez 2010/12/7 Edgar Ramos <[email protected]> > Viendolo bien Nestor, tienes razon, estoy modificando mi dominio para > ajustar tus sugerencias, mi duda ahora es la aplicacion del algoritmo > especifico de acuerdo al tipo de Identificacion: Cedula, Ruc, etc. > > Saludos > > El 7 de diciembre de 2010 12:43, Nestor Rodriguez > <[email protected]>escribió: > > Te pregunto: Porque extiendes de Identificacion? Yo creeria que no es >> necesario, para eso tienes una tipificacion de la identificacion. >> Normalmente uno o extiende o tipifica, no ambas a menos que sea por una >> razon que aun no hayas comentado. En caso de necesitar ambas , creeria yo, >> es necesario modificar tu estructura de persistencia. O si no requires >> extender la identificacion te funcionaria un <component> en el cliente. >> >> Saludos, >> Nestor Rodriguez >> >> 2010/12/7 Edgar Ramos <[email protected]> >> >>> Nestor. >>> >>> Si tengo 3 clases que implementan IIdentificacion (Cedula, Ruc, >>> Pasaporte), tendre 3 component ?, esto es correcto verdad ? >>> Ya que PersonaJuridica puede aceptar cualquiera de estas 3 >>> implementaciones como documento >>> >>> Saludos >>> >>> Edgar >>> >>> El 7 de diciembre de 2010 11:56, Nestor Rodriguez >>> <[email protected]>escribió: >>> >>>> Hasta donde yo veo necesitas hacer un >>>> component<http://nhforge.org/doc/nh/en/index.html#mapping-declaration-component> >>>> en >>>> persona juridica para la Identificacion. Y en el <component> haces un >>>> <many-to-one> para apuntar a TipoIdentificacion. De todas maneras es >>>> importante que aclares cual es el problema que presentas y como has tratado >>>> de mapearlo. >>>> >>>> Saludos, >>>> Nestor Rodriguez >>>> >>>> 2010/12/7 Edgar Ramos <[email protected]> >>>> >>>>> Gente un saludo >>>>> >>>>> Tengo la sigueinte clase >>>>> >>>>> public class PersonaJuridica : BaseEntity, ICliente >>>>> { >>>>> public virtual string NombreComercial { get; set; } >>>>> public virtual string RazonSocial { get; set; } >>>>> public virtual string Direccion { get; set; } >>>>> public virtual string Telefono { get; set; } >>>>> >>>>> public virtual IIdentificacion Documento { get; set; } >>>>> >>>>> public virtual string Descripcion { >>>>> get { return RazonSocial; } >>>>> } >>>>> } >>>>> >>>>> Para la propiedad public virtual IIdentificacion Documento { get; set; >>>>> } , la cual puede ser de varios tipos aqui un ejemplo de un tipo >>>>> >>>>> public class Cedula : IIdentificacion >>>>> { >>>>> >>>>> #region Miembros de IIdentificacion >>>>> >>>>> public bool EsValido() { >>>>> .... >>>>> } >>>>> >>>>> public virtual string NumeroIdentificacion { get; set; } >>>>> >>>>> public virtual TipoIdentificacion TipoIdentificacion { get; >>>>> set; } >>>>> >>>>> #endregion >>>>> } >>>>> >>>>> A su vez para la propiedad public virtual TipoIdentificacion >>>>> TipoIdentificacion { get; set; } aqui la clase >>>>> >>>>> public class TipoIdentificacion : BaseEntity >>>>> { >>>>> public virtual string Descripcion { get; set; } >>>>> public bool LogNatural { get; set; } >>>>> public bool LogJuridico { get; set; } >>>>> public bool LogConsumidorFinal { get; set; } >>>>> } >>>>> >>>>> Yo requiero tener una tabla de la siguiente forma >>>>> >>>>> PersonaJuridica >>>>> >>>>> Id, NombreComercial, RazonSocial, etc, IdentificacionID, >>>>> NumeroIdentificacion >>>>> 1 XYZ XYZ 1 >>>>> 0408520096001 >>>>> >>>>> >>>>> TipoIdentificacion >>>>> >>>>> Id, Descripcion, LogNatural, LogJuridico >>>>> 1 Cedula 1 0 >>>>> 2 Ruc 1 1 >>>>> 3 Pasaporte 1 0 >>>>> >>>>> Gracias por sus comentarios >>>>> >>>>> Saludos >>>>> >>>>> Edgar >>>>> >>>>> -- >>>>> 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 >>>> >>> >>> -- >>> 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 >> > > -- > 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
