С запросами HQL / Criteria NHibernate может работать только с тем, что было отображено (хотя, как указал Энди Уайт, необработанный SQL все еще является опцией). Если вы хотите использовать запросы Criteria, необходимо сопоставить столбец.
Однако NHibernate не ограничивается использованием общедоступных участников. Итак, если вы хотите скрыть поле CreateDate
, объявите приватное (возможно, только для чтения?) Свойство. Кроме того, вы можете пропустить свойство и указать NHibernate использовать доступ на уровне поля, установив access="field"
для элемента свойства в отображении.
Я знаю, что вы хотели сделать это без отображения поля, но я просто не думаю, что это возможно (без изменения источника NHibernate;). Тем не менее, если вы запрашиваете у поля, поле имеет некоторое отношение к вашему домену и поэтому, вероятно, заслуживает того, чтобы его сопоставили, и с помощью частного или защищенного члена вы можете сохранить информацию, скрывающуюся на месте.