如何在 ServiceStack OrmLite 中随机排序?

How to order random in ServiceStack OrmLite?

我想通过 "NEWID()" 或 Guid.NewGuid() 订购,但无法成功。我没有找到有关此主题的任何示例或文档。

提前致谢

由于随机排序特定于每个 RDBMS 提供程序,因此您需要通过自定义 SQL 函数进行排序,您可以使用自定义 SqlExpression,例如SQL 服务器:

var randomRows = db.Select<Poco>(q => q.OrderBy("NEWID()"));

不过,我刚刚添加了对新 OrderByRandom() API in this commit 的支持,它抽象了特定于 RDBMS API 的方式来保留可移植的 API,您现在可以查询:

var randomRows = db.Select<Poco>(q => q.OrderByRandom());

此更改适用于 v4.0.43+,即现在 available on MyGet