Как использовать TABLESAMPLE с помощью NHibernate? - PullRequest
1 голос
/ 25 октября 2011

Я хочу добавить определенный запрос SQL к 1, который будет работать только на SQL Server.Как это сделать:

Критерии:

        Session
            .CreateCriteria<User>()
            .Add(Expression.Sql("TABLESAMPLE (100 PERCENT)"))
            .SetMaxResults(count)
            .List<User>();

Сгенерированный SQL:

SELECT
     TOP (6)
      this_.user_id
FROM users this_
WHERE TABLESAMPLE (100 PERCENT)

ОЖИДАЕМЫЙ SQL:

SELECT
     TOP (6)
      this_.user_id
FROM users this_
TABLESAMPLE (100 PERCENT)

Ключевое слово WHERE должноне существует.Как это сделать?

10x

1 Ответ

1 голос
/ 25 октября 2011

Зачем использовать ICriteria абстракцию над SQL, если у вас все равно будет простой SQL?Просто используйте Session.CreateSqlQuery(...) и используйте свой собственный запрос.

Нет смысла использовать инструмент только ради его использования (и каким-то образом злоупотреблять им в данном конкретном случае).ICriteria лучше подходит для запросов сущностей, а не для операций на стороне базы данных.

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