Hola JJ,

No estoy respondiendo a tu pregunta. Disculpas!

Pregunto, porque estás modelando de esa manera? Por ejemplo, cómo
representas en ese modelo una persona que, además de médico, es paciente?
Probablemente estés obligado a repetir sus datos como persona.

Sugiero que mires ejemplos de modelar un rol.

On Jan 8, 2018 4:43 PM, "Juan José Montes de Oca Arbós" <
juanjose.montesdeocaar...@gmail.com> wrote:

> 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: 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+
> unsubscr...@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+unsubscr...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/d/optout.

Responder a