Я недавно обновил NHibernate 1.2 до 3.1 в старой кодовой базе. Я исправил большинство проблем, но я застрял на этом. (Я не могу перейти с HQL на другой метод доступа без большого количества изменений в кодовой базе).
Это не было проблемой в 1.2, но после обновления я получаю следующую проблему.
У меня есть следующий HQL:
select distinct c.OwnerUser from Film c order by c.OwnerUser.UserName
, что приводит к ошибке:
[SQL: select distinct user1_.Id as Id33_, user1_.ApplicationId as Applicat2_33_, user1_.UserName as UserName33_, user1_.LoweredUserName as LoweredU4_33_, user1_.MobileAlias as MobileAl5_33_, user1_.IsAnonymous as IsAnonym6_33_, user1_.LastActivityDate as LastActi7_33_, user1_.CreateDate as CreateDate33_, user1_.CountryCode as CountryC9_33_, user1_.PreferredEditionId as Preferr10_33_ from dbo.tbl_Content film0_ inner join dbo.vw_aspnet_Users_With_Id user1_ on film0_.OwnerUserId=user1_.Id, dbo.vw_aspnet_Users_With_Id user2_ where film0_.discriminator in ('film', 'webcamfilm', 'slideshow') and film0_.OwnerUserId=user2_.Id order by user2_.UserName] ---> System.Data.SqlClient.SqlException: ORDER BY items must appear in the select list if SELECT DISTINCT is specified.
Этот код работает нормально, просто с дублирующейся записью, которую я не хочу.
select c.OwnerUser from Film c order by c.OwnerUser.UserName
Как мне написать HQL, чтобы получить отчетливые результаты?