NHibernate: псевдонимы таблиц в SqlProjection - PullRequest
1 голос
/ 11 августа 2010

У меня есть следующий код:

Session.CreateCriteria<Foo>("foo")
    .CreateAlias("foo.Bar", "bar")
    .SetProjections(Projections.SqlProjection("bar.FirstName + ' ' + bar.LastName));

Проблема с псевдонимом для таблицы столбцов в SqlProjection.

Документы Hibernate говорят, что "строка {псевдоним} будет заменена псевдонимом корневого объекта" , но не дает никаких подсказок, как вы могли бы получить доступ к псевдонимам для некорневых объектов .

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 18 января 2011

У меня есть похожий вопрос.В частности, я хотел создать проекцию, которая была бы объединением нескольких полей.Вместо использования SqlProjection я использовал:

Projections.SqlFunction("concat",
                        NHibernateUtil.String,
                        Projections.Property("Field"),
                        Projections.Constant(" "),
                        Projections.Property("Field2",
                        Projections.Constant(" "),
                        Projections.Property("Field3")
                    );

Это основано на модульном тесте NHibernate: UsingSqlFunctions_Concat_WithCast.Это работает на SQL Server, несмотря на то, что «concat» не является нативной функцией.

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

Попробуйте это:

 Session.CreateCriteria<Foo>()
   .CreateCriteria("Bar")
      .SetProjections(Projections.SqlProjection("FirstName + ' ' + LastName)");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...