Фильтр NHibernate странный перевод SQL - PullRequest
0 голосов
/ 27 октября 2011

Я пытаюсь использовать фильтры NHibernate, но получаю очень странный перевод SQL В файле отображения у меня есть этот фрагмент:

<filter name="onlyMProv" 
  condition="Abbreviation in (SELECT AllowedAbbreviation from dbo.AllowedDistricts)" />

в коде, тогда я написал

session.EnableFilter("onlyMProv");
var districts = session.CreateQuery("from District");

но nHibernate перевести это на

select [fields...] 
from dbo.Districts district0_ where district0_.Abbreviation in 
    (SELECT district0_.AllowedAbbreviation from dbo.AllowedDistricts)

Что возвращает, «Имя столбца AllowedAbbreviation недопустимо».

Как видите, поместите псевдоним district0_ в подзапрос ... Любая идея ? Я что-то не так делаю?

Заранее спасибо!

1 Ответ

0 голосов
/ 02 ноября 2011

все столбцы без префикса рассматриваются как столбцы объекта-владельца. простое решение:

condition="Abbreviation in (SELECT ad.AllowedAbbreviation from dbo.AllowedDistricts ad)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...