Как отобразить количество набора к объекту с быстрым-nhibernate

С сотрудниками и подчиненными - я хочу загрузить сотрудника количеством подчиненных в одном запросе.

public class Employee
{
    public Name {get;set;}
    public int NumberOfSubordinates {get;set;}
}

Получающийся SQL должен быть похожим:

select e.name, (select count(*) from subordinate s where s.employee_id = e.id) NumberOfSubordinates
from employee e 
group by e.name
order by NumberOfSubordinates desc
9
задан W3Max 20 February 2010 в 02:14
поделиться

1 ответ

Вы можете отобразить этот столбец как формулу.

Map(x => x.NumberOfSubordinates)
    .FormulaIs(@"select count(*) from subordinate where subordinate.employee_id = id");

Другой подход - отобразить подчиненные как обратный мешок и использовать lazy = "extra". В этом случае Subordinates.Count выполнит SQL count (*) , но не как часть начальной загрузки. Этот подход может быть недоступен в Fluent.

15
ответ дан 4 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: