fluent nhibernate HasOne WithForeignKey não está funcionando

Sempre que eu carrego uma classe Task, a propriedade Document é sempre nula, apesar de haver dados no banco de dado

Task class:

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

ubstituição do Mapeamento de Tarefas para AutoPersistenceModel:

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

Como você pode ver o que o NHProf diz que está sendo executado, a condição de associação está incorreta e a WithForeignKey parece não ter efeito. Na verdade, eu posso escrever qualquer string no código acima e isso não faz diferenç

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

Deveria ser

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

Se eu hackear os dados no banco de dados para que os IDs correspondam, os dados são carregados, mas obviamente isso está incorreto - mas pelo menos prova que carrega dado

Edit: vasculhar a fonte nhib fluente para encontrar o XML produz isso:

<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: aqui está o 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,

lguém tem alguma idéi

Obrigad

Andrew

questionAnswers(6)

yourAnswerToTheQuestion