如何使用亚音速3获得随机行列表

时间:2010-07-12 08:23:07

标签: subsonic subsonic3

我正在使用SubSonic 3版本的Active记录模式。我的要求是从表中获得3个随机行。经过一些谷歌搜索我发现我可以在SQL中使用NewID函数,但我不知道使用sub sonic获取Randow行 谢谢

1 个答案:

答案 0 :(得分:1)

亚音速总是存在“后门”。它被称为InlineQuery(SubSonic 2.2)或CodingHorror(SubSonic 3):http://subsonicproject.com/docs/CodingHorror

您的SQL查询可能如下所示:

SELECT top 3
newid() as sortorder, id
FROM some_table
ORDER by sortorder

所以我建议这样的事情

List<int> result = new CodingHorror(@"
       SELECT TOP 3
       id, newid() as sortorder
       FROM some_table
       ORDER by sortorder
    ).ExecuteTypedList<int>();

如果它没有从亚音速2.2更改为3,则当使用valuetype作为泛型类型参数时,ExcecuteTypedList()方法将返回查询中的第一个元素。在这种情况下:id。

这也可能有效:

List<Product> result = new CodingHorror(@"
       SELECT TOP 3
       *, newid() as sortorder
       FROM products
       ORDER by sortorder
    ).ExecuteTypedList<Product>();