QueryOver: выбрать столбцы из подзапроса

Как я могу выбрать / спроецировать значения из подзапроса из другой таблицы в мой основной запрос?

У меня есть NH-модель, подобная этой:

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

И я хочу заполнить ValueFromOtherTable левым соединением следующим образом:

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

где MyModelTable - это таблица, сопоставленная с MyModel-классом. Я хочу заполнить ValueFromOtherTable (без отображения NH), выбрав все значения из mt (чтобы заполнить столбцы с отображением NH), а затем с помощью OtherTable хочу заполнить ValueFromOtherTable.

Я не могу объединить обе таблицы черезQueryOver поскольку в модели не существует прямой корреляции родитель-ребенок,JoinAlias или жеJoinQueryOver не будет работать. мойMainQueryOver запросыMyModelTable.

АЛЬТЕРНАТИВА:

Альтернатива состоит в том, чтобы сначала получить все значения из MyModelTable, а затем использовать там свойства для запроса OtherTable. Однако это приведет кSELECT N+1 проблема (для каждой модели изMyModel выберите некоторые OtherTable ...), а также делает код очень сложным.

Есть хороший способ решить эту проблему или это единственный способ заполнить MyModel, используя описанную альтернативу?

Ответы на вопрос(1)

Ваш ответ на вопрос