É possível usar filtros do NHibernate para filtrar as referências?

Exemplo inventado, mas digamos que eu tenha essas entidades:

public class Root
{
    public virtual Customer Customer { get; set; }
}

public class Customer
{
    public virtual CustomerData Data { get; set; }
}

public class CustomerData
{
    public virtual string FooName { get; set; }
}

Agora, digamos que eu queira criar um filtro para Root baseado no valor de FooName. Intuitivamente, eu tentei isso na minha classe FooMap. Usando mapeamentos fluentes.

ApplyFilter("FooNameFilter", "Customer.Data.FooName in (:argument)");

Isso não funciona. Um SqlClient.SqlException é lançado informandoThe multi-part identifier "Customer.Data.FooName" could not be bound.

Existe uma maneira de fazer filtros funcionar dessa maneira, ou sou forçado a mover essa lógica para todosQuery<Root>()s em vez disso?

questionAnswers(1)

yourAnswerToTheQuestion