TipoDocumento
[Id] [bigint] IDENTITY(1,1) NOT NULL
[Codigo] [varchar](20) NOT NULL
[Descripcion] [varchar](50) NOT NULL
Personal
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[Nombres] [varchar](50) NOT NULL,
[Apellidos] [varchar](150) NOT NULL,
[Sexo] [char](1) NOT NULL,
[TipoDocumentoId] [bigint] NULL,
[NumeroDocumento] [int] NOT NULL,
Medico
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[PersonalId] [bigint] NOT NULL,
[Matricula] [varchar](30) NULL,
//Mappings (simplificados)
public class TipoDocumentoMapping : ClassMapping<TipoDocumento>
{
public TipoDocumentoMapping()
{
Id(x => x.Id, m => m.Generator(Generators.Identity));
Property(o => o.Codigo, m => m.Type((IIdentifierType)TypeFactory.GetAnsiStringType(20)));
Property(o => o.Descripcion, m => m.Type((IIdentifierType)TypeFactory.GetAnsiStringType(50)));
}
}
public class MedicoMapping : ClassMapping<Medico>
{
public MedicoMapping()
{
//Esto es lo que está mal, no se como generar el Join si Médico posee la propiedad TipoDocumento que no sea de un tipo primitivo
Id(x => x.Id, m => m.Generator(Generators.Identity));