Требуется помощь по переводу API NHibernate.Linq в Criteria - PullRequest
1 голос
/ 15 марта 2010

Я не уверен, как добавить к этому подкачку:

Session.Linq<Article>()
  .Where(art => art.Tags.Any(t => t.Name == tag)).ToList().

Поэтому я решил использовать Criteria API.

var rowCount = Session.CreateCriteria(typeof(Article))
  .SetProjection(Projections.RowCount()).FutureValue<Int32>();

var res = Session.CreateCriteria(typeof(Article))
  .Add(/* any help with this? :) */)
  .SetFirstResult(page * pageSize)
  .SetMaxResults(pageSize)    
  .AddOrder(new Order("DatePublish", true))
  .Future<Article>();

totalCount = rowCount.Value;

Любая помощь приветствуется.

1 Ответ

2 голосов
/ 15 марта 2010

В ссылке для пейджинга вы используете команды Skip и Take.

Ваш сценарий:

Session.Linq<Article>()
  .Where(art => art.Tags.Any(t => t.Name == tag))
  .Skip(2*20).Take(20)
  .ToList();

int totalCount = Session.Linq<Article>()
                     .Where(art => art.Tags.Any(t => t.Name == tag))
                     .Count();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...