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.

Responder a