QueryOver: seleccione columnas de la subconsulta

¿Cómo puedo seleccionar / proyectar valores de una subconsulta de una tabla diferente en mi consulta principal?

Tengo un modelo NH como este:

[Serializable]
public class MyModel
{
    public virtual int Id {get; set;}
    //more mapped values
    ....
    //unmapped values
    public virtual string ValueFromOtherTable {get;set;}
}

Y quiero llenar ValueFromOtherTable con una combinación izquierda como esta:

Select mt.*, ..., ot.ValueFromOtherTable from MyModelTable mt left 
join OtherTable ot ON (somecondition)

donde MyModelTable es la tabla asignada a MyModel-class. Quiero llenar ValueFromOtherTable (sin mapeo NH) seleccionando todos los valores de mt (para llenar las columnas mapeadas NH) y luego usando OtherTable quiero llenar ValueFromOtherTable.

No puedo unir ambas tablas a través deQueryOver como no existe una correlación directa padre-hijo en el modelo, entoncesJoinAlias oJoinQueryOver no funcionará MiMainQueryOver consultasMyModelTable.

ALTERNATIVA:

La alternativa es obtener primero todos los valores de MyModelTable y luego usar las propiedades allí para consultar OtherTable. Sin embargo, esto resultará en unSELECT N+1 problema (para cada modelo deMyModel seleccione alguna otra tabla ...) y también hace que el código sea muy complicado.

¿Hay una buena manera de resolver este problema o es la única forma de llenar MyModel utilizando la alternativa descrita?

Respuestas a la pregunta(1)

Su respuesta a la pregunta