Hola JJ, Carlos, grupo... ¿probaste de implementar los tipos de documentos como "well-known instance"?.. igual, si los datos son de otro sistema y solo los usas de lectura, quizás pensaría en armar una vista que haga el join correspondiente (left si querés todo el personal, inner si querés solo los médicos) y mapearía contra la vista como no mutable.
saludos nelo 2018-01-10 15:51 GMT-03:00 Juan José Montes de Oca Arbós < [email protected]>: > Hola Carlos, el namespace es el mismo que en Medico. > > De hecho, también probé de mapear la clase Medico contra la tabla > Personal, y el mapping funciona bien, devolviendo los objetos con sus Tipos > de documento... lo que me lleva a pensar que es algo que tengo mal > declarado en el mapping del Join. > > > > -- > Juan José Montes de Oca Arbós. > > =========================== > Web personal: http://juanjose.montesdeocaarbos.com.ar/blog/ > > El 9 de enero de 2018, 22:49, Carlos Peix <[email protected]> > escribió: > >> Hola JJ, >> >> Verificaste el namespace del al clase TipoDocumento? >> >> ---------------------------------- >> Carlos Peix >> >> 2018-01-08 16:43 GMT-03:00 Juan José Montes de Oca Arbós < >> [email protected]>: >> >>> Buenas grupo!!! >>> >>> En un proyecto en el que estoy trabajando, necesito mapear 2 tablas para >>> generar una sola entidad. No tengo mayores inconvenientes con eso (utilizo >>> JOIN), pero una de esas tablas tiene una relación contra otra tabla (como >>> una propiedad) y esa es la parte que no me doy cuenta como resolver. >>> >>> Si no mapeo la entidad que es una propiedad (para que la infiera NH), el >>> sistema me indica el siguiente error: >>> >>> *Missing column: TipoDocumentoId in Hospital.dbo.Medico* >>> >>> Si mapeo dicha entidad, el sistema me indica el siguiente error: >>> >>> *Could not determine type for: Domain.TipoDocumento, Domain, >>> Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, for columns: >>> NHibernate.Mapping.Column(TipoDocumentoId)* >>> >>> >>> A nivel de base de datos, tengo una tabla que representa el Personal de >>> un hospital, con sus datos básicos (Nombre, Nro de documento, Tipo de >>> Documento, etc) y otra tabla que representa a los Médicos de dicho Hospital >>> con sus datos destacados (Matricula, y PersonalId). >>> >>> La entidad en C# que quiero representar es un médico, que tiene Nombre, >>> Nro Documento, Tipo de Documento y Matricula. El problema es que Tipo de >>> Documento es otra tabla, y no se como representarla en los mappings. >>> >>> Tengo estas tablas: >>> >>> >>> y este diagrama de clases >>> >>> >>> El mapeo que tengo es este: >>> >>> Join("Personal", j => >>> { >>> j.Key(k => k.Column("Id")); >>> j.Property(o => o.Nombres, m => >>> m.Type((IIdentifierType)TypeFactory.GetAnsiStringType(50))); >>> j.Property(o => o.Apellidos, m => >>> m.Type((IIdentifierType)TypeFactory.GetAnsiStringType(150))); >>> j.Property(o => o.Sexo, m => { m.Column(a => >>> a.SqlType("char")); }); >>> j.Property(o => o.NumeroDocumento, m => { >>> m.Column("NumeroDocumento"); }); >>> >>> >>> >>> *j.Property(o => o.TipoDocumento, m => >>> { m.Column(a => { a.Name("TipoDocumentoId"); >>> a.SqlType("bigint"); }); });* >>> }); >>> >>> Estoy medio perdido, pero no me doy cuenta como resolverlo, googleando y >>> leyendo documentación no encontré ningún ejemplo con un caso como este. >>> >>> Si elimino la propiedad TipoDocumento de la clase Medico, funciona bien >>> (obviamente sin tener esa propiedad disponible, que la necesito). >>> >>> ¿Alguna punta por donde puedo encontrar la solución? >>> >>> >>> GRACIAS!!! >>> >>> >>> -- >>> Juan José Montes de Oca Arbós. >>> >>> -- >>> -- >>> Para escribir al Grupo, hágalo a esta dirección: >>> [email protected] >>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>> --- >>> Has recibido este mensaje porque estás suscrito al grupo >>> "NHibernate-Hispano" de Grupos de Google. >>> Para cancelar la suscripción a este grupo y dejar de recibir sus >>> mensajes, envía un correo electrónico a nhibernate-hispano+unsubscribe >>> @googlegroups.com. >>> Para acceder a más opciones, visita https://groups.google.com/d/optout. >>> >> >> -- >> -- >> Para escribir al Grupo, hágalo a esta dirección: >> [email protected] >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >> --- >> Has recibido este mensaje porque estás suscrito al grupo >> "NHibernate-Hispano" de Grupos de Google. >> Para cancelar la suscripción a este grupo y dejar de recibir sus >> mensajes, envía un correo electrónico a nhibernate-hispano+unsubscribe >> @googlegroups.com. >> Para acceder a más opciones, visita https://groups.google.com/d/optout. >> > > -- > -- > Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano@ > googlegroups.com > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > --- > Has recibido este mensaje porque estás suscrito al grupo > "NHibernate-Hispano" de Grupos de Google. > Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, > envía un correo electrónico a nhibernate-hispano+ > [email protected]. > Para acceder a más opciones, visita https://groups.google.com/d/optout. > -- -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano --- Has recibido este mensaje porque estás suscrito al grupo "NHibernate-Hispano" de Grupos de Google. Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a [email protected]. Para obtener más opciones, visita https://groups.google.com/d/optout.
