NHibernate поиска конкретного подкласса - PullRequest
2 голосов
/ 19 ноября 2009

Возможно ли отфильтровать определенный подкласс в NHibernate?

Например, у меня есть следующие классы:

Pet { Name }
Cat: Pet { Paws }
Budgie: Pet { Wings }
Person { Pets }

Я хочу создать поиск NHibernate, чтобы дать мне людей с кошками с 4 лапами.

Я могу только ограничивать атрибуты питомца (Имя) ...

1 Ответ

0 голосов
/ 19 ноября 2009

Вы должны попробовать что-то вроде этого. Хотя не проверял, поэтому я не уверен на 100%.

 DetachedCriteria fetchCatsWith4Pawns = DetachedCriteria.For<Cat>();
 fetchCatsWith4Pawns.Add(Restrictions.Eq("Pawns", 4));
 fetchCatsWith4Pawns.SetProjection(Projections.Id());

 DetachedCriteria fetchPersonsWithCatsWith4Pawns = DetachedCriteria.For<Person>();
 fetchPersonsWithCatsWith4Pawns.CreateCriteria("Pets", "pet").Add(Subqueries.PropertyIn("pet.id", fetchCatsWith4Pawns));
 fetchPersonsWithCatsWith4Pawns.GetExecutableCriteria(session).List<Person>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...