Вы можете связать формулу со свойством и использовать ее вместо кода c #. например,
Свойство:
private int _postCount = 0;
public virtual int PostCount
{
get
{
return _postCount;
}
}
Формула:
(SELECT count(p.ID) FROM BlogPost p WHERE p.BlogID = ID and p.IsDeleted = 0)
И тогда вы можете использовать PostCount в своем выражении как обычно. Не забудьте установить модификатор доступа для свойства в вашем FluentMapping. Не уверен, что поддерживает Fluent, но я нашел варианты для нормального отображения:
* property
* field
* field.camelcase
* field.camelcase-underscore
* field.pascalcase-m-underscore
* field.lowercase-underscore
* nosetter.camelcase
* nosetter.camelcase-underscore
* nosetter.pascalcase-m-underscore
* nosetter.lowercase-underscore
Вероятно, лучше всего проверить документацию NHibernate для официального списка Стратегии доступа , поэтому вы комбинируете стратегию доступа со стратегией именования, например, "Field.lowercase-подчеркивание"