当前位置:  开发笔记 > 编程语言 > 正文

NHibernate:Group by和Count

如何解决《NHibernate:Groupby和Count》经验,为你挑选了1个好方法。



1> Darin Dimitr..:

假设您使用composite-element映射UserBook类:

var top10Books = session
    .CreateQuery(@"select b.Book 
                   from User u 
                   join fetch u.Books b 
                   where b.Status = :status")
    .SetParameter("status", "Read")
    .SetMaxResults(10)
    .SetResultTransformer(CriteriaSpecification.DistinctRootEntity)
    .List();

这是完整源代码的链接.

编辑:

我看到你需要阅读一本书的次数.这是查询:

var top = session
    .CreateQuery(@"select b.Book, count(b.Book.Id) 
                   from User u join fetch u.Books b 
                   where b.Status = :status 
                   group by b.Book")
    .SetParameter("status", "Read")
    .SetMaxResults(10)
    .List();

    foreach (var item in top)
    {
        var book = (Book)item[0];
        var readCount = (long)item[1];
        Console.WriteLine("book id: {0}, read count: {1}", book.Id, readCount);
    }

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有