使用 Castle ActiveRecord 从表中查找前 10 个结果

发布于 07-17 13:27 字数 459 浏览 7 评论 0原文

我试图获取我的应用程序用户的前 10 名分数。 我通常使用通常

User.SlicedFindAll(0, 10, 
NHibernate.Expression.Expression.Eq("IsActive", true), 
NHibernate.Expression.Order.Desc("Score")

用于分页目的的东西。 但是,我不想向我的请求添加任何约束(WHERE 子句)。 因此,我尝试了类似的操作,

User.SlicedFindAll(0, 10, 
null, 
NHibernate.Expression.Order.Desc("Score")

但这会引发 NullReferenceException。 有什么指点吗? (我猜 SlicedFindAll 不是一个好的选择)

谷歌在这方面没有提供帮助。

I'm trying to get say the top 10 scores for the users of my application. I'm usually using something along the lines of

User.SlicedFindAll(0, 10, 
NHibernate.Expression.Expression.Eq("IsActive", true), 
NHibernate.Expression.Order.Desc("Score")

which is usually used for pagination purposes. However, I don't want to add any constraint (WHERE clause) to my request. Hence I tried something along the lines of

User.SlicedFindAll(0, 10, 
null, 
NHibernate.Expression.Order.Desc("Score")

but this throws a NullReferenceException. Any pointers? (I guess SlicedFindAll is not a good choice)

Google didn't help on that one.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

为你拒绝所有暧昧2024-07-24 13:27:45

您可以使用此重载:

public static T[] SlicedFindAll(int firstResult, int maxResults, NHibernate.Expression.Order[] orders, params NHibernate.Expression.ICriterion[] criteria)

在您的情况下它将是:

User.SlicedFindAll(0, 10, new[] {Order.Desc("Score")})

You can use this overload:

public static T[] SlicedFindAll(int firstResult, int maxResults, NHibernate.Expression.Order[] orders, params NHibernate.Expression.ICriterion[] criteria)

in your case it would be:

User.SlicedFindAll(0, 10, new[] {Order.Desc("Score")})
憧憬巴黎街头的黎明2024-07-24 13:27:45

我更喜欢 LINQ:

ActiveRecordLinq.AsQueryable<User>().Take(10)

它应该完美地评估诸如

select top 10 * from User

I prefer LINQ:

ActiveRecordLinq.AsQueryable<User>().Take(10)

It should perfectly evaluate to sth like

select top 10 * from User
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文