鉴于下表计数:集团通过与使用NHibernate
资源:
ID INT,
名称为varchar(100),
地址为varchar(500),
市VARCHAR(100) ,
等
ResourceViews:
ID INT,
RESOURCEID INT,
用户id INT,
viewDate每一个资源看着,一个条目添加到该用户的的ResourceView表时间的DateTime
。
下面是相应的类:
public class Resource
{
public int Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string City { get; set; }
public IList<ResourceView> ResourceViews { get; set; } // simplified
etc. -- class simplified for question
}
public class ResourceView {
public int Id { get; set; }
public Resource Resource { get; set; }
public User User { get; set; }
public DateTime ViewDate { get; set; }
}
使用NHibernate,我如何通过类似下面的SQL检索什么计数获得前5观看次数最多的资源,以便:
SELECT * FROM [资源]
其中在(
ID从resourceViews
其中userid = 3
组由(RESOURCEID)选择前5 RESOURCEID 为了通过COUNT(*)递减
)
奖励积分,如果它可以与标准的API,而不是HQL来完成。
这是近乎完美的,谢谢!获得的积分和我把最终的解决方案作为任何人遇到这个问题的新答案。 – 2010-02-22 13:23:11