Hola Nelo,
 lo de armar una vista fue lo que pensé si no podía resolverlo mediante
mapping directo a las tablas, entiendo que se debería poder, y que si no lo
estoy consiguiendo es por una falta de conocimiento de mi parte ¿verdad?

 No se me había ocurrido lo de "well-know instance" (no conocía el termino,
aunque lo venimos usando en algún cliente). Aunque podría hacerlo, sigo con
la duda sobre el mapeo de tablas mediante el Join... si puedo mapear
Personal que tiene su propiedad TipoDocumento, y ese mapping funciona bien
¿que debería configurar para que Medico (que se obtiene de un join entre
Medico y Personal) posea una propiedad que se relaciona contra otra tabla?




--
Juan José Montes de Oca Arbós.

===========================
Web personal: http://juanjose.montesdeocaarbos.com.ar/blog/

El 10 de enero de 2018, 23:12, [email protected] <
[email protected]> escribió:

> 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:
>> [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.

Responder a