NHibernate: проекция типа подкласса сущности - PullRequest
1 голос
/ 06 августа 2010

Как мне запросить класс определенной сущности в NHibernate?
Я в основном хочу проекцию, которая возвращает System.Type каждой строки, которая соответствует критериям.

Я смотрел на Получить тип подкласса из проекции с помощью NHibernate , однако, когда я создаю Projections.Property("alias.class") или Projections.Property("class"), я всегда получаю could not resolve property 'class'.

Ответы [ 3 ]

1 голос
/ 03 октября 2010

Projections.Property("class") возможно, и это работает, но только если в классе есть дискриминатор.

Я получил ответ от человека из моей команды (Денис Быков).
К сожалению, у меня былТрудно заставить его ответить здесь, чтобы я мог наградить его репутацией.

0 голосов
/ 07 августа 2010

Если вы не можете получить доступ к типу через NHibernate для проекции, возможно, вы можете сохранить System.Type в поле, используя пользовательский тип пользователя .Это должно дать вам именно ту функциональность, которая вам требуется.

0 голосов
/ 06 августа 2010

Я не думаю, что это возможно, используя NHibernate напрямую;но рассмотрите возможность добавления следующего к базовому классу сущностей (при условии, что он у вас есть):

protected virtual Type GetTypeUnproxied() {
    return GetType();
} 

После того, как вы запросили свои сущности, вы можете запросить это свойство, чтобы вернуть фактический тип CLR сущности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...