fluent nhibernate HasOne WithForeignKey no funciona

Cuando cargue una clase de Tarea, la propiedad Documento siempre es nula, a pesar de que haya datos en la base de datos.

Clase de tarea:

public class Task
{
    public virtual Document Document { get; set; }

nulación de asignación de tareas para AutoPersistenceModel:

public void Override(AutoMap<Task> mapping)
{
    mapping.HasOne(x => x.Document)
        .WithForeignKey("Task_Id");

Como puede ver de lo que NHProf dice que se está ejecutando, la condición de unión es incorrecta, WithForeignKey no parece tener efecto. De hecho, puedo escribir cualquier cadena en el código anterior y no hay diferencia.

FROM   [Task] this_
    left outer join [Document] document2_
    on this_.Id = document2_.Id

Debería ser

FROM   [Task] this_
    left outer join [Document] document2_
    on this_.Id = document2_.Task_Id

Si pirateo los datos en la base de datos para que los ID coincidan, los datos se cargan, pero obviamente esto es incorrecto, pero al menos demuestra que carga datos.

Edit: hurgar en la fuente fluida de nhib para encontrar el XML produce esto:

<one-to-one foreign-key="Task_Id" cascade="all" name="Document" class="MyProject.Document, MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> 

Edit: aquí está el esquema:

CREATE TABLE [dbo].[Document](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Task_Id] [int] NOT NULL,

CREATE TABLE [dbo].[Task](
[Id] [int] IDENTITY(1,1) NOT NULL,

¿Alguien tiene alguna idea

Gracia

André