需要NHibernate.Linq到Criteria API翻译帮助

时间:2010-03-14 21:18:01

标签: nhibernate

我不确定如何为此添加分页:

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 个答案:

答案 0 :(得分:2)

在进行分页的链接中,您可以使用命令SkipTake

你的情景:

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();