如何在ServiceStack OrmLite中随机订购?

时间:2015-08-30 13:14:01

标签: mysql ormlite-servicestack

我想按“NEWID()”或Guid.NewGuid()订购,但无法使其正常工作。我没有找到关于这个主题的任何例子或文档。

提前致谢

1 个答案:

答案 0 :(得分:1)

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

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

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

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

此更改可从v4.0.43 +现在available on MyGet获得。