FluentNHibernate - Mapeando uma classe para várias tabelas

Desculpe por uma longa pergunta. Mas vale a pena dar todos os detalhes, por favor, aguarde comigo até o fim.

Eu estou trabalhando contra um banco de dados legado sobre o qual eu não tenho muito controle. Eu quero ser capaz de mapear uma classe para várias tabelas de banco de dados. Aqui está como minhas tabelas parecem

Lookup

+--------+--------------+------------+
| Column |   DataType   | Attributes |
+--------+--------------+------------+
| Id     | INT          | PK         |
| Code   | NVARCHAR(50) |            |
+--------+--------------+------------+

Culture

+--------------+--------------+------------+
|    Column    |   DataType   | Attributes |
+--------------+--------------+------------+
| Id           | INT          | PK         |
| Culture_Code | NVARCHAR(10) |            |
+--------------+--------------+------------+

Lookup_t9n

+----------------+---------------+---------------------+
|     Column     |   DataType    |     Attributes      |
+----------------+---------------+---------------------+
| Id             | INT           | PK                  |
| Culture_Id     | INT           | FK to Culture table |
| Localised_Text | NVARCHAR(MAX) |                     |
+----------------+---------------+---------------------+

Como você pode ver, eu tenho uma tabela de pesquisa onde todas as pesquisas são armazenadas. O texto de exibição de uma pesquisa é localizado e armazenado em uma tabela separada. Esta tabela tem uma chave estrangeira para a tabela de cultura para indicar a cultura para a qual o texto localizado existe.

Minha aula parece com isso

public class Lookup {

    public virtual int Id {get; set;}

    public virtual string Code {get; set;}

    public virtual string DisplayText {get; set;}
}

E minha classe de mapeamento FNH se parece com isso

public class LookupMappings : ClassMap<Lookup> {

    public LookupMappings()
    {
        Table("Lookup");
        Id(x => x.Id).Column("Id");
        Map(x => x.Code).Column("Code");

        Join("Lookup_t9n", join => {
            join.Map(x => x.DisplayText).Column("Localised_Text"); //Note this place, my problem is here
        })
    }
}

No mapeamento acima, emJoin&nbsp;parte eu quero fornecer alguma cláusula where comoWHERE Lookup_t9n.Culture_Id = Culture.Culture_Id AND Culture.Culture_Code = System.Threading.Thread.CurrentUICulture.CultureCode.

Eu sei que isso não é um SQL válido, mas transmite a intenção que espero. Alguém tem alguma experiência de fazer uma coisa dessas?

Eu posso adicionar uma camada de mapeamento onde eu posso ter classes que mapeiam um-para-um com tabelas de banco de dados e, em seguida, escrever c # simples para mapear essas classes de volta ao meuLookup&nbsp;classe. Eu tenho feito isso como uma solução provisória. Eu queria saber se eu posso remover essa camada de mapeamento com algum uso inteligente de NH.