Несмотря на то, что решение по сбору Диего Миджелсона является абсолютно верным, оно означает дополнительный запрос после извлечения сущности Run
. Если вы не сопоставили коллекцию и не хотите или не хотите дополнительный запрос, рассмотрите свойство «computed» как таковое
в классе отображения Run
<property name="SamplesCount" type="long" formula="(select count(s.Id) from Samples s where s.RunId = Id)" />
и в классе Run
просто добавьте
long SamplesCount {get; set;}
Обратите внимание, что в запросе для части "s.RunId = Id" NHibernate вставит правильный псевдоним для корневой таблицы. Кроме того, не забывайте скобки, это облегчает синтаксический анализатор и в некоторых случаях требуется.
Преимущество этого подхода заключается в применении подзапроса для выбора (который может или не может быть хорошим в зависимости от вашего случая). Свойство также может быть загружено лениво (я думаю, что это функция NH 2 ++), если это свойство то, что вам понадобится редко.